Давным -давно, чтобы быстро достичь эффекта, я использовал опрос для реализации функции онлайн -чата. Позже я случайно связался с Socket. Что касается сокета, мое понимание между процессом между процессами. Во -первых, должен быть сервер и клиент. Служба запускается и слушает определенный IP -порт, чтобы найти процесс. Клиент открывает сокет выделяет IP -порт для подключения к IP -порту на сервере, поэтому может быть сделана связь между двумя процессами. Давайте нарисуем простую картину ниже, чтобы понять.
Но сегодня я все еще планирую поделиться использованием WebSocket, сначала положите эффект, а затем вставьте код.
Первый шаг - запустить службу сокета.
Затем подключитесь к клиенту и подключитесь к серверу, присоединяйтесь к чате и используйте Googel (Bai Yujing, Shen Lang), Firefox (Chu Liuxiang) и I (Li Sunhuan), чтобы проверить, и эффект заключается в следующем.
*
*********************
********************** Отсоедините.
Ниже приведен исходный код этого теста.
Сервер:
открытый класс TestWebSocketController: Controller {WebSocketServer Server; List <sessionInfo> listSession = новый список <sessionInfo> (); public actionResult index () {return view (); } // Служба старта public String string () {var ip = "192.168.1.106"; var port = "1010"; server = new WebSocketServer (); if (! server.setup (ip, int.parse (port))) {return "websocket service urer error"; } // Новое сеанс -соединение сервер.newSessionConnected += SessionConnected; // сеанс закрыть сервер.sessionClosed += SessionClosed; // новое сообщение о приеме Server.NewMessageReceived += messagereCeived; if (! server.start ()) {// Обработка сообщения об отказе от прослушивания возвращается "ошибка"; } вернуть "успех"; } //// <summary> //// Session Close /// </summary> /// <param name = "session"> </param> /// <param name = "value"> </param> private void sessionClosed (сеанс WebSocketSession, supersocket.socketbase.closereason) {debug.writelin {2: HH: MM: SS} ", значение, session.RemoteEndPoint, dateTime.now); // sendmsgtoreMotePoint (sessionId, sessionId + "отключить"); var sessionRemove = listSession.firstordefault (s => s.sessionId == session.sessionId); ListSession.remove (SessionRemove); } /// <summary> /// Session Connection /// </summary> /// <param name = "session"> </param> private void sessionConcected (сеанс WebSocketSession) {debug.writeline ("new SessionId: {1} Время: {2: HH: MM: ss}", session.RemoteDpoint, session.sessionId, dtimememime.n. ListSession.Add (New SessionInfo {sessionId = session.sessionId, endPoint = session.RemoteEndPoint.toString ()}); } //// <summary> /// Прием сообщения /// </summary> /// <param name = "session"> </param> /// <param name = "value"> </param> private void messagerceived (сеанс WebSocketSession, string value) {// deserialize Содержание сообщения vareScoot = jsonConvert.DeserializeObject <shipleINFO> (значение); FOREACH (VAR ITER в ListSession) {/// Отправить сообщение Sendmsg (item.sessionId, string.format ("{0} Отправить сообщение: {1}", message.name, message.message)); }} // <summary> /// Отправить сообщение /// </summary> /// <param name = "sessionId"> </param> /// <param name = "msg"> </param> private void sendmsg (строка sessionId, string msg) {var appsession = server.getAppsessionByid (sessionId); if (appsession! = null) appsession.send (msg); } public Class MessageInfo {public String name {get; набор; } public String Message {get; набор; }} открытый класс SessionInfo {public String SessionId {get; набор; } public String endpoint {get; набор; } // public String name {get; набор; }}}Клиент:
@{Viewbag.title = "index";} <h2> index </h2> <script src = "../ scripts/jquery-1.8.2.js"> </script> <input type = "text" id = "txtname"/> <input type = value = value "incopment room" = "btnconco id = "btndisconnection" /> <input type = "text" id = "txtinput" /> <input type = "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" в окне) {ws = new Websocket (url);} else if ("mozwebsocket" в окне) {ws = new mozwebocket (url); Браузер "); // Зарегистрировать различные обратные вызовы ws.onopen = function () {$ ("#msg "). Append ($ ("#txtname "). val () +" Добавить в комнату чата <br /> ");} ws.onclose = function () {$ ("#msg "). ws.onmessage = function (receivemsg) {$ ("#msg"). }); //$("#btndisconnection").click(function () {// $ ("#msg"). Append ($ ("#txtname"). val () + "Оставьте в чате <br />"); // ws.close (); //}); $ ("#btnsend"). Click (function () {if (ws.readystate == websocket.open) {var message = "{/" name/":/" " + $ ("#txtname "). val () +"/",/" "Сообщение/":/"" + $ (#txtinput "). $ ("#msg"). Текст ("соединение закрыто!");}}); </script>Суммировать
Выше приведено использование WebSocket в Java для реализации функции онлайн -чата, которую редактор представил вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!