Dahulu kala, untuk mencapai efek dengan cepat, saya menggunakan jajak pendapat untuk mengimplementasikan fungsi obrolan online. Kemudian, saya secara tidak sengaja menghubungi Socket. Mengenai soket, pemahaman saya adalah komunikasi antara proses. Pertama, harus ada server dan klien. Layanan dimulai dan mendengarkan port IP tertentu untuk menemukan proses. Klien membuka soket mengalokasikan port IP untuk terhubung ke port IP di server, sehingga komunikasi antara kedua proses dapat dilakukan. Mari kita gambar sederhana di bawah ini untuk dipahami.
Tapi, hari ini saya masih berencana untuk berbagi penggunaan Websocket, pertama -tama memberikan efek, dan kemudian tempel kode.
Langkah pertama adalah memulai layanan soket.
Kemudian sambungkan ke klien dan sambungkan ke server, bergabunglah dengan ruang obrolan, dan gunakan Googel (Bai Yujing, Shen Lang), Firefox (Chu Liuxiang), dan saya (Li Xunhuan) untuk menguji, dan efeknya adalah sebagai berikut.
*
*********************Memutuskan.
************************Memutuskan.
Di bawah ini adalah kode sumber tes ini.
Server:
kelas publik testwebsocketController: controller {server websocketserver; Daftar <SessionInfo> listSession = Daftar baru <SessionInfo> (); index ActionResult publik () {return view (); } // Layanan Mulai String Publik Start () {var ip = "192.168.1.106"; var port = "1010"; server = WebSocketServer baru (); if (! server.setup (ip, int.parse (port))) {return "WebSocket Layanan Mulai kesalahan"; } // server koneksi sesi baru.NewSessionConnected += sessionConnected; // sesi tutup server.SessionClosed += sessionclosed; // Pesan Baru Menerima Server.NewMessagereceived += Messagereceived; if (! server.start ()) {// memproses pesan kegagalan mendengarkan "error"; } mengembalikan "kesuksesan"; } /// <summary> /// sesi tutup /// </summary> /// <param name = "session"> </param> // <param name = "value"> </param> private void sessionclosed (sesi WebSocketsession, sUpersocket.socketbase.closereason) {debug.writeline ("sesi (" {{{{{{debrite ("{{{{debrite (" {{{{{{debrite ("debangan (" Sesi (" {2: hh: mm: ss} ", value, session.remoteendpoint, datetime.now); // sendmsgtoremotepoint (sessionId, sessionId + "terputus"); var sessionremove = listSession.firstordefault (s => s.SessionId == session.SessionId); ListSession.remove (sessionremove); } /// <summary> /// koneksi sesi /// </summary> /// <param name = "session"> </param> sidang sidang sidang (sesi WebSocketsession) {debug.writeLine ("Sesi baru: {1} waktu: {2: hh: mm: ss}", session.remoteend Time: {2: hh: mm: ss} ", session.remoteend listSession.add (sessionInfo {sessionId = session.SessionId, endpoint = session.remoteEndpoint.toString ()}); } /// <summary> /// pesan terima /// </summary> /// <param name = "session"> </param> // <param name = "value"> </param> private void messagereceived (WebSocketsession sesi, nilai string) {// deserialize konten vari pesan = jsononvert.deserializeisasi) {// deserialize var pesan = jsononvert.deserializeRialize) {// deserialize vari pesan = jsononvert.deserializeRialization foreach (item var di listSession) {/// Kirim pesan sendmsg (item.SessionId, string.Format ("{0} Kirim pesan: {1}", message.name, message.message)); }} // <summary> /// Kirim pesan /// </summary> /// <param name = "sessionId"> </param> /// <param name = "msg"> </param> sendMsgyid private (string sessionid, string msg) {var appSession = server.getAppSessionDyid (sessionid); if (appSession! = null) appSession.send (msg); } public class messageInfo {public string name {get; mengatur; } pesan string publik {get; mengatur; }} kelas publik sessionInfo {public string sessionId {get; mengatur; } public string endpoint {get; mengatur; } // nama string publik {get; mengatur; }}}Klien:
@{Viewbag.title = "index";} <h2> index </h2> <script src = "../ skrip/jQuery-1.8.2.js"> </script> <input type = "teks" id = "txtName"/> <input type = "tombol" value = "bergabung dengan ruang obrolan" id cobat = "bt" "bt" "txpon =" Tombol "Nilai =" Bergabunglah dengan ruang obrolan "ID" Bt "Bt" BT "" id = "btndisconnection" /> <input type = "text" id = "txtInput" /> <input type = "tombol" value = "kirim" id = "btnsend" /> <div id = "msg"> < /div> <script language = "javascript" type = "teks /teks /javascript"> var ws; var url = "ws://192.168.1.106:1010" $("#btnConnection").click(function () { if ("WebSocket" in window) { ws = new WebSocket(url); } else if ("MozWebSocket" in window) { ws = new MozWebSocket(url); } else alert("The browser version is too low, please Tingkatkan browser Anda "); // Daftarkan berbagai panggilan balik ws.onopen = function () {$ ("#msg "). append ($ ("#txtname "). val () +" Tambahkan ke ruang obrolan <br /> ");} ws.onclose = function () {$ ("#msg "). /> ");} ws.onmessage = function (receivemsg) {$ ("#msg "). append (receivemsg.data +" <br /> ");} // mendengarkan peristiwa penutupan jendela. Ketika jendela ditutup, secara aktif ditutup. ws.close ();}}); //$("#BtNDisconnection").click(function () {// $ ("#msg"). Tambahkan ($ ("#txtname"). Val () + "Tinggalkan ruang obrolan <br />"); // ws.close (); //}); $ ("#btnsend"). Klik (function () {if (ws.readystate == WebSocket.open) {var message = "{/" name/":/" " + $ ("#txtname "). ever () (ever () (wale (); $ ("#msg"). Teks ("Koneksi ditutup!");Meringkaskan
Di atas adalah penggunaan WebSocket di Java untuk mengimplementasikan fungsi obrolan online yang diperkenalkan oleh editor kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!