Hace mucho tiempo, para lograr el efecto rápidamente, utilicé las encuestas para implementar la función de chat en línea. Más tarde, accidentalmente contacté a Socket. Con respecto a Socket, mi comprensión es una comunicación entre procesos. Primero, debe haber un servidor y un cliente. El servicio comienza y escucha un cierto puerto IP para localizar el proceso. El cliente abre el socket asigna el puerto IP para conectarse al puerto IP en el servidor, por lo que se puede realizar la comunicación entre los dos procesos. Dibujemos una imagen simple a continuación para entender.
Pero, hoy todavía estoy planeando compartir el uso de WebSocket, primero poner el efecto y luego pegar el código.
El primer paso es iniciar el servicio Socket.
Luego, conéctese al cliente y conéctese al servidor, únase a la sala de chat y use Googel (Bai Yujing, Shen Lang), Firefox (Chu Liuxiang) e I (Li Xunhuan) para probar, y el efecto es el siguiente.
*
*********************Desconectar.
************************Desconectar.
A continuación se muestra el código fuente de esta prueba.
Servidor:
Public Class TestWebSocketController: Controller {WebSocketServer Server; List <SessionInfo> listsession = nueva lista <sessionInfo> (); public ActionResult index () {return View (); } // Service Start Public String Start () {var ip = "192.168.1.106"; VAR Port = "1010"; servidor = nuevo WebSocketServer (); if (! server.setup (ip, int.parse (puerto))) {return "WebSocket Service Start Error"; } // nuevo servidor de conexión de sesión.newsessionConnected += sessionConnected; // Session Cerrar Server.SessionClosed += SessionClosed; // nuevo mensaje recibiendo servidor.NewMessagerEceive += Messagereive; if (! server.start ()) {// Procesamiento de la falla de escucha Mensaje Devuelve "Error"; } return "éxito"; } /// <<summary> /// session sear /// </summary> /// <param name = "session"> </sam> /// <param name = "valor"> </amr> private void sessionClosed (websocketsession session, supersocket.socketbase.closerason) {debug.writeLine ("Session Session, razonamiento para cerrar: {0} de:} 1} {2: hh: mm: ss} ", valor, session.remoteEndpoint, datetime.now); // sendmsgToremotePoint (sessionId, sessionID + "desconectado"); var sessionRemove = listsession.firstordefault (s => s.sessionID == session.sessionID); listsession.remove (SessionRemove); } /// <summary> /// Session Connection /// </summary> /// <param name = "session"> </sam> private void sessionConnected (websocketsession session) {debug.writeLine ("new sessionID: {1} time: {2: hh: mm: ss}", session.remoteEndpoint, session.sessionid, dateTime.Now); ListSession.Add (nuevo SessionInfo {sessionId = session.sessionID, endpoint = session.remoteEntpoint.ToString ()}); } //// <summary> /// Mensaje Recibe /// </Summary> /// <param name = "Session"> </param> /// <param name = "valor"> </aam> private void MessagereCeive (WebSocketSession Session, String Value) {// Deserialize Mensaje Content Message = jSonConvert.DeserializeOntizeObject <SefeseInfo> (Value); foreach (elemento var en listsession) {/// Enviar mensaje sendmsg (item.sessionID, string.format ("{0} Enviar mensaje: {1}", mensaje.name, mensaje.message)); }} // <summary> /// Enviar mensaje /// </sumario> /// <param name = "sessionId"> </param> /// <param name = "msg"> </param> private void sendmsg (string sessionId, string msg) {var appSession = server.getAppSessionByID (sessionS); if (AppSession! = NULL) AppSession.send (MSG); } public class MessageInfo {public String Name {get; colocar; } mensaje de cadena pública {get; colocar; }} public class SessionInfo {public String SessionId {get; colocar; } Public String Endpoint {get; colocar; } // nombre de cadena pública {get; colocar; }}}Cliente:
@{Verbag.title = "index";} <h2> index </h2> <script src = "../ scripts/jQuery-1.8.2.js"> </script> <input type = "text" id = "txtname"/> <input type = "botón" Valor = "Unión de la sala de chat" id = "btnconnection"/> <> <input type = "Botón" Valor de chat "de la sala de chat". id = "btndisconnection" /> <input type = "text" id = "txtInput" /> <input type = "button" value = "send" id = "btnsend" /> <div id = "msg"> </div> <script language = "javaScript" type = "text /javaScript"> var ws; var url = "ws: //192.168.1.106: 1010" $ ("#btnconnection"). click (function () {if ("webSocket" in ventaj browser "); // Registre varias devoluciones de llamada ws.Onopen = function () {$ ("#msg "). append ($ ("#txtname "). val () +" Agregar a la sala de chat <Br /> ");} ws.onclose = function () {$ ("###msg "). APPEND ($ ("#txtname "). Val () +" dejar el chat de la sala de chat; ws.onmessage = function (recibeVemSg) {$ ("#msg"). }); //$(("#btndisconnection").click(function () {// $ ("#msg"). append ($ ("#txtname"). val () + "Deje la sala de chat <Br />"); // ws.close (); //}); $ ("#btnsend"). Click (function () {if (ws.readyState == WebSocket.open) {var Message = "{/" name/":/" " + $ ("#txtname "). val () +"/"/" mensaje/":/" + $ ("#txtinput"). val () + "/"} "; $ ("#msg"). Text ("La conexión está cerrada!");Resumir
Lo anterior es el uso de WebSocket en Java para implementar la función de chat en línea que el editor le presentó. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!