Há muito tempo, para alcançar o efeito rapidamente, usei a pesquisa para implementar a função de bate -papo on -line. Mais tarde, entrei em contato com o soquete acidentalmente. Em relação ao soquete, meu entendimento é a comunicação entre processos. Primeiro, deve haver um servidor e um cliente. O serviço inicia e ouve uma determinada porta IP para localizar o processo. O cliente abre o soquete aloca a porta IP para se conectar à porta IP no servidor, para que a comunicação entre os dois processos possa ser feita. Vamos desenhar uma imagem simples abaixo para entender.
Hoje, porém, ainda estou planejando compartilhar o uso do WebSocket, primeiro colocar o efeito e depois colar o código.
A primeira etapa é iniciar o serviço de soquete.
Em seguida, conecte -se ao cliente e conecte -se ao servidor, junte -se à sala de bate -papo e use Googel (Bai Yujing, Shen Lang), Firefox (Chu Liuxiang) e I (Li Xunhuan) para testar, e o efeito é o seguinte.
*
********************* Desconecte.
************************ Desconecte.
Abaixo está o código -fonte deste teste.
Servidor:
classe pública testwebsocketcontroller: controlador {websocketServer server; List <SessionInfo> listSession = new List <SessionInfo> (); public ActionResult Index () {return View (); } // serviço inicial string public string start () {var ip = "192.168.1.106"; var porta = "1010"; servidor = new websocketServer (); if (! Server.setup (ip, int.parse (porta))) {retorna "Erro de início do serviço do websocket"; } // New Session Connection Server.NewsionConnected += sessionConnected; // session feche server.sessclosed += sessionClosed; // nova mensagem recebendo server.newMessageReCeived += MessagerEceived; if (! Server.start ()) {// Processando a mensagem de falha de audição retorna "erro"; } retornar "sucesso"; } /// <summary> /// Sessão Close /// </summary> /// <param name = "session"> </param> // <param name = "value"> </param> Void privado sessionClosed (WebSocketSession Session, SuperSocket.SocketBase.ClosEason) {Debug.Wr.WROWSENSESTENSE, RAILEMENTO DO TEMPERSOCKET.SocketBase.closeroneason) {Debug.Wr.Wring (" {2: hh: mm: ss} ", value, 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"> </param> private void sessionConnected (WebSocketSession Session) {Debug.WriteLine ("new SessionId: {1} Time: {2: hh: mm: ss}",, SessionId: {1}: {2: hh: mm: ss} ",, ,.Remotendpoint,; listSession.add (new SessionInfo {sessionId = session.SessionId, endpoint = session.remoteEndPoint.toString ()}); } /// <summary> /// mensagem receba /// </summary> /// <param name = "session"> </param> // <param name = "value"> </param> private void messageReCeived (sessão websocketSession, valor da string) {// Deserialize message content Message = jsonConvert.Deserialize, foreach (var item na listsession) {/// Envie a mensagem sendmsg (item.sessionId, string.format ("{0} enviar mensagem: {1}", message.name, message.Message)); }} // <summary> /// Enviar message /// </summary> /// <param name = "sessionid"> </param> /// <param name = "msg"> </param> private void sendmsg (String sessionId, string msg) {var appSession = server.getApssionByid (sessionId); if (appSession! = null) appSession.send (msg); } classe pública messageInfo {name public string {get; definir; } mensagem de string pública {get; definir; }} classe pública sessionInfo {public String sessionId {get; definir; } public string endpoint {get; definir; } // Nome da string pública {get; definir; }}}Cliente:
@{Viewbag.title = "index";} <h2> ÍNDICE </H2> <script src = "../ scripts/jQuery-1.8.2.js"> </script> <input type = "text" id = "txtName"/> <tipo de input = "" "/" junção da sala de chat "id/" sala "id =" btndisconnection " /> <input type =" text "id =" txtInput " /> <input type =" button "value =" send "id =" btnsend " /> <div id =" msg "> < /div> <idioma script =" javascript "type =" text /javascript "> var; var url = "ws: //192.168.1.106: 1010" $ ("#btnconnection"). clique (function () {if ("websocket" na janela) {ws = new websocket (url); else if ("mozwebsocket" na janela) {ws = allel); Atualize seu navegador "); // Registre vários retornos de chamada ws.onopen = function () {$ ("#msg "). Anexe ($ ("#txtName "). /> ");} ws.onmessage = function (receivemsg) {$ ("#msg "). Anexe (receivemsg.data +" <r /> ");} // Ouça a janela de fechamento da janela. ws.close (); //$("#BTNDisconnection").Click(Function () {// $ ("#msg"). Append ($ ("#txtName"). $ ("#btnsend"). Clique (function () {if (ws.readyState == websocket.open) {var message = "{/" name/":/" " + $ ("#txtName "). $ ("#msg"). Texto ("conexão está fechada!");Resumir
O exposto acima é o uso do WebSocket em Java para implementar a função de bate -papo on -line que o editor apresentou a você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!