Vor langer Zeit, um den Effekt schnell zu erzielen, habe ich die Umfrage verwendet, um die Online -Chat -Funktion zu implementieren. Später kontaktierte ich versehentlich Socket. In Bezug auf Socket ist mein Verständnis die Kommunikation zwischen den Prozess. Erstens muss es einen Server und einen Client geben. Der Dienst startet und hört auf einen bestimmten IP -Anschluss, um den Prozess zu finden. Der Client öffnet den Socket zu, den IP -Port für eine Verbindung zum IP -Port auf dem Server zuordnen, sodass die Kommunikation zwischen den beiden Prozessen durchgeführt werden kann. Zeichnen wir unten ein einfaches Bild, um zu verstehen.
Aber heute plane ich noch, die Verwendung von WebSocket zu teilen, den Effekt zuerst zu setzen und dann den Code einzufügen.
Der erste Schritt besteht darin, den Socket -Service zu starten.
Stellen Sie dann eine Verbindung zum Client her und stellen Sie eine Verbindung zum Server her, treten Sie dem Chatraum an und verwenden Sie Googel (Bai Yujing, Shen Lang), Firefox (Chu Liuxiang) und I (Li Xunhuan), um zu testen, und der Effekt ist wie folgt.
*
*********************Trennen.
************************Trennen.
Unten finden Sie den Quellcode dieses Tests.
Server:
public class testwebsocketController: Controller {WebSocketServer Server; List <SesionInfo> listsesion = new List <SesionInfo> (); public actionResult index () {return view (); } // Service start public String start () {var ip = "192.168.1.106"; var port = "1010"; server = new WebSocketServer (); if (! server.setUp (IP, int.Parse (port))) {return "WebSocket -Service -Start -Fehler"; } // neuer Sitzungsverbindungsserver. // Session Close Server.SessionClosed += Sessionclosed; // Neue Nachricht empfängt Server if (! server.start ()) {// Verarbeitung von Hörfehlernachricht "Fehler"; } return "Erfolg"; } /// <summary> /// Session Close /// </summary> /// <param name = "session"> </param> /// <param name = "value"> </param> private void sessionclosed (WebSocketSession Session, Supersocket.socketbase.cloSerate) {debug. {2: hh: mm: ss} ", value, session.remoteendpoint, datetime.now); // sendsgtoremotePoint (SessionID, SessionID + "getrennt"); var sessionRemove = listSession.firstordeFault (s => sessionId == Session.SessionId); ListSession.remove (SessionRemove); } /// <summary> /// Session Connection /// </summary> /// <param name = "session"> </param> private void session konnectected (WebSocketSession Session) {debug.writeLine ("New SessionID: {1} Zeit: {2: hh: mm: ss}", Session listsesion.add (neue sessionInfo {sessionId = session.SessionID, Endpoint = Session.remoteendpoint.toString ()}); } /// <summary> /// Message Receival /// </summary> /// <param name = "session"> </param> /// <param name = "value"> </param> private void mesageeSecebed (WebSocketSession -Sitzung, String -Wert) {// Deserialize Messing Inhalt Var Message = jonconvert.DesserializeInialiEnialiEnialiEnialiTeBect <Meldungen <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten) (Wertung von Message Inhalt vars = jsonconvert.Desserialize <Stous <Noticals <nachrichten) <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichten <nachrichtens) (value); foreach (var item in listSession) {/// meldung sendMsg (item.SessionId, string.format ("{0} Nachricht senden: {1}", message.name, message.message)); }} // <summary> /// Meldung senden /// </summary> /// <param name = "sessionId"> </param> /// <param name = "msg"> </param> private void sendmsg (String SessionID, String msg) {var AppSession = server.getAppSessionById (sessionID); if (Appsesion! = null) AppSession.send (msg); } public class messageInfo {public String Name {get; Satz; } public String Nachricht {get; Satz; }} public class sessionInfo {public String SessionID {get; Satz; } public String endpoint {get; Satz; } // public String Name {get; Satz; }}}Kunde:
@{Viewbag.title = "index";} <h2> Index </h2> <script src = "../ scripts/jQuery-1.8.2.js"> </script> <Eingabe type = "text" id = "txtName"/> <Eingabe-Typ "button" value id = "btndisconnection" /> <Eingabe type = "text" id = "txtInput" /> <input type = "button" value = "senden" id = "btnsend" /> <div id = "msg"> < /div> <script Sprache = "javascript" type = "text /javascript"> var ws; var url = "ws: //192.168.1.106: 1010" $ ("#btnConnection"). click (function () {if ("webSocket" in Fenster) {WS = new WebSocket (url);} else if ("MoZwebet" in Fenster) {WS = NEW MOZWEBEBEL (NEW MOZWEBSOBSEL (NEW MOZWEB) (URL. Niedrig, bitte aktualisieren Sie Ihren Browser "); // Registrieren Sie verschiedene Callbacks ws.onopen = function () {$ ("#msg "). append ($ ("#txtName "). Val () +" Hinzufügen zum Chatraum <br /> "); /> ");} ws.onMessage = function (ReceivEmsg) {$ ("#msg "). append (Empfangsem. Ws.CLOSE (); //$("#btndisconnection").click(function () {// $ ("#msg"). append ($ ("#txtName"). Val () + "Lassen Sie den Chatraum <br />"); // Ws.close (); //}); $ ("#btnsend"). click (function () {if (Ws.ReadyState == WebSocket.open) {var message = "{/" name/":/" " + $ ("#txtName "). Val () +"/",/" Message/":/" + $ ("#txtinput". $ ("#msg"). Text ("Verbindung ist geschlossen!");}}) </script>Zusammenfassen
Die oben genannte Verwendung von WebSocket in Java, um die Online -Chat -Funktion zu implementieren, die der Editor Ihnen vorgestellt hat. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!