Jquery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП XMPP рдкреНрд░реЛрдЯреЛрдХреЙрд▓



рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!
рдпрд╣ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдореАрдХреНрд╖рд╛, рдореИрдВ рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд░реВрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдмреАрдУрдмреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рдВрдмреЗ рдкреЛрд▓рд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЬреИрдмрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдкрд╣рд▓реЗ рдХреЗрд╡рд▓ рдПрдХ рд╕рд░реНрд╡рд░ рдерд╛

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ:


рдЪрд▓реЛ рд╣рдорд╛рд░реЗ nginx рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЦреЛрд▓реЗрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рд▓рд┐рдЦреЗрдВред Local / http-bind :

location /http-bind/ { proxy_pass http://openfire.jabber.server:7070; #    7070; proxy_buffering off; # ; proxy_read_timeout 100s; #   ; tcp_nodelay on; } 

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрд┐рд╕реА рднреА рдЙрдкрд▓рдмреНрдз рдЬреИрдмрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рднреА рд╕реНрдЯреНрд░реАрдо рд╕реНрдЯреНрд░реАрдо рдХрд░реЗрдВрдЧреЗред

рдЙрдкрдХрд░рдг

XMPP рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рджреГрд╢реНрдп рдЙрд╕ рдкреНрд▓рдЧрдЗрди рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:


рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкреГрд╖реНрда рдкрд░, рдПрдХ рдЕрджреНрднреБрдд рдФрд░ рдЙрджрд╛рд╣рд░рдгрд╛рддреНрдордХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдПрдХ рдорд╛рдирдХ рдЪреИрдЯ рд╕рдВрд╡рд╛рдж рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
 <html> <head> <title>Basic connection</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script> <script type="text/javascript" src="https://raw.github.com/Marko-M/jQuery-XMPP-plugin/master/jquery.xmpp.js"></script> <script type="text/javascript" > $(document).ready(function(){ $("#connectBut").click(function(){ var jid = $("#jid").val(); var password = $("#pass").val(); var logContainer = $("#log"); var contactList = $("#contacts"); //An example of bosh server. This site is working but it can change or go down. //If you are going to have a production site, you must install your own BOSH server var url ="http://bosh.metajack.im:5280/xmpp-httpbind"; $.xmpp.connect({url:url, jid: jid, password: password, onConnect: function(){ logContainer.html("Connected"); $.xmpp.setPresence(null); }, onPresence: function(presence){ var contact = $("<li>"); contact.append("<a href='javascript:void(0)'>"+ presence.from +"</a>"); contact.find("a").click(function(){ var id = MD5.hexdigest(presence.from); var conversation = $("#"+id); if(conversation.length == 0) openChat({to:presence.from}); }); contactList.append(contact); }, onDisconnect: function(){ logContainer.html("Disconnected"); }, onMessage: function(message){ var jid = message.from.split("/"); var id = MD5.hexdigest(message.from); var conversation = $("#"+id); if(conversation.length == 0){ openChat({to:message.from}); } conversation = $("#"+id); conversation.find(".conversation").append("<div>"+ jid[0] +": "+ message.body +"</div>"); },onError:function(error){ alert(error.error); } }); }); $("#disconnectBut").click(function(){ $.xmpp.disconnect(); }); }); function openChat(options){ var id = MD5.hexdigest(options.to); var chat = $("<div style='border: 1px solid #000000; float:left' id='"+id+"'><div style='border: 1px solid #000000;'>Chat with "+options.to+"</div><div style='height:150px;overflow: auto;' class='conversation'></div><div><input type='text' /><button>Send</button></div></div>"); var input = chat.find("input"); var sendBut = chat.find("button"); var conversation = chat.find(".conversation"); sendBut.click(function(){ $.xmpp.sendMessage({to:options.to, body: input.val()}); conversation.append("<div>"+ $.xmpp.jid +": "+ input.val() +"</div>"); input.val(""); }); $("body").append(chat); } </script> </head> <body> This example just connect notify when connected and show the connected contacts. <br> Jid <input type="text" id="jid"> (ej: maxpowel@gmail.com, alvaro.maxpowel@chat.facebook.com) <br> Password <input type="password" id="pass"> <br> <button id="connectBut">Connect</button> <button id="disconnectBut">Disconnect</button> <br> <div id="log"> </div> <ul id="contacts"> </ul> </body> </html> 


рдЖрдЧреЗ рдЖрдкрдХреА рдХрд▓реНрдкрдирд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп!

Source: https://habr.com/ru/post/In147469/


All Articles