오래 전에 효과를 빨리 달성하기 위해 폴링을 사용하여 온라인 채팅 기능을 구현했습니다. 나중에 실수로 소켓에 연락했습니다. 소켓과 관련하여 내 이해는 프로세스 간 통신입니다. 먼저 서버와 클라이언트가 있어야합니다. 서비스는 프로세스를 찾기 위해 특정 IP 포트를 시작하고 청취합니다. 클라이언트는 소켓이 서버의 IP 포트에 연결하기 위해 IP 포트를 할당하므로 두 프로세스 간의 통신을 수행 할 수 있습니다. 아래에 간단한 그림을 그려서 이해해 봅시다.
그러나 오늘도 여전히 WebSocket의 사용을 공유하고 먼저 효과를 발표 한 다음 코드를 붙여 넣을 계획입니다.
첫 번째 단계는 소켓 서비스를 시작하는 것입니다.
그런 다음 클라이언트에 연결하여 서버에 연결하고 채팅방에 가입 한 다음 Googel (Bai Yujing, Shen Lang), Firefox (Chu Liuxiang) 및 I (Li Xunhuan)를 사용하여 테스트하고 효과는 다음과 같습니다.
*
********************* 연결 해제.
************************ 분리.
아래는이 테스트의 소스 코드입니다.
섬기는 사람:
공개 클래스 TestWebSocketController : 컨트롤러 {WebSocketServer Server; List <sessionInfo> listsession = 새 목록 <sessionInfo> (); public actionResult index () {return view (); } // 서비스 시작 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 error"; } // 새 세션 연결 서버 .NewSessionConnected += SessionConnected; // 세션 닫기 서버 .sessionClosed += sessionClosed; // 새 메시지 수신 서버 .newMessagerEceived += MessagerEceived; if (! server.start ()) {// 청취 실패 메시지 처리 "error"; } 반환 "성공"; } /// <summary> /// session close /// </summary> /// <param name = "session"> </param> // <param name = "value"> </param> private void sessionClosed (websocketSession session, supersocket.socket.socket.socket.scocket.scocket.writeline ( "세션 클로즈, {0}에서 : {0}에서 : ^ 0}. {2 : hh : mm : ss} ", value, session.remoteendpoint, datetime.now); // sendmsgtoremotePoint (sessionId, sessionId + "Distronnected"); 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}", session.remoteendpoint, dateTime.now); listsession.add (new sessionInfo {sessionId = session.sessionId, endpoint = session.remoTeendPoint.ToString ()}); } /// <summary> /// 메시지 수신 /// </summary> /// <param name = "session"> </param> // <param name = "value"> </param> private void messageReceived (websocketSession session, string value) {// deserialize message message = jsonconvert.deserializeobjec <messagenfo> (값); foreach (listsession의 var 항목) {/// 메시지 보내기 sendmsg (item.sessionid, string.format ( "{0} 메시지 보내기 : {1}", message.name, message.message); }} // <summary> /// 메시지 보내기 /// </summary> /// <param name = "sessionId"> </param> /// <param name = "msg"> </param> private void sendmsg (String SessionId, String Msg) {var appsession = server.getAppSessionById (sessionId); if (appsession! = null) appsession.send (msg); } public class messageInfo {public String name {get; 세트; } 공개 문자열 메시지 {get; 세트; }} public class sessionInfo {public string sessionId {get; 세트; } public String endpoint {get; 세트; } // 공개 문자열 이름 {get; 세트; }}}고객:
@{viewbag.title = "index";} <h2> index </h2> <script src = "../ scripts/jquery-1.8.2.js"> </script> <입력 유형 = "text"id = "txtname"/> <input type = "button" "value room ="ind = "in infut type"in input type "in input type the Chat. 실 var url = "ws : //192.168.1.106 : 1010"$ ( "#btnconnection"). click (function () {if ( "websocket"in Window) {ws = new WebSocket (url);} else if ( "mozwebsocket"{ws = new Mozbesket (url); 브라우저 "); // 다양한 콜백 등록 ws.onopen = function () {$ ("#msg "). Append ($ ("#txtname "). val ("#txtname "). val ("#txtname "). ws.OnMessage (recivemsg) {#msg ". cheper winding winding winder int //$("#BTNDISCONNECTE").CLICK() {// $ ( "#msg"). Append ($ ( "#txtName"). val () + "채팅실 <br />"); // ws.close (); //}); $ ( "#btnsend"). click (function () {if (ws.readystate == websocket.open) {var message = "{/"name/":/" + $ ( "#txtname"). val () + "/",/"메시지/":/"" + $ ( "#txtinput"); $ ( "#msg"). 텍스트 ( "연결이 닫혔다!"); </script>요약
위는 Java에서 WebSocket을 사용하여 편집자가 소개 한 온라인 채팅 기능을 구현하는 것입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!