منذ وقت طويل ، من أجل تحقيق التأثير بسرعة ، استخدمت الاقتراع لتنفيذ وظيفة الدردشة عبر الإنترنت. في وقت لاحق ، اتصلت عن طريق الخطأ المقبس. فيما يتعلق بالمقبس ، فهمي هو التواصل بين العملية. أولاً ، يجب أن يكون هناك خادم وعميل. تبدأ الخدمة وتستمع إلى منفذ IP معين لتحديد العملية. يفتح العميل المقبس يخصص منفذ IP للاتصال بمنفذ IP على الخادم ، بحيث يمكن إجراء الاتصال بين العمليتين. دعنا نرسم صورة بسيطة أدناه لفهمها.
لكن اليوم ما زلت أخطط لمشاركة استخدام WebSocket ، أولاً وضع التأثير ، ثم لصق الرمز.
الخطوة الأولى هي بدء خدمة المقبس.
ثم اتصل بالعميل واتصل بالخادم ، وانضم إلى غرفة الدردشة ، واستخدم Googel (Bai Yujing ، Shen Lang) ، Firefox (Chu Liuxiang) ، و I (Li Xunhuan) للاختبار ، والتأثير على النحو التالي.
*
*********************قطع الاتصال.
************************قطع الاتصال.
فيما يلي رمز المصدر لهذا الاختبار.
الخادم:
الفئة العامة TestWebSocketController: Controller {WebSocketServer Server ؛ قائمة <SessionInfo> listsession = قائمة جديدة <SessionInfo> () ؛ الفهرس الإجراء العام () {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 error" ؛ } // New Session Connection Server.NewSessionConnected += SessionConnected ؛ // Session Close Server.SessionClosed += SessionClosed ؛ // رسالة جديدة تلقي Server.NewMessagereceived += messagereceived ؛ if (! server.start ()) {// معالجة رسالة فشل الاستماع إرجاع "خطأ" ؛ } إرجاع "النجاح" ؛ } ///] {2: hh: mm: ss} "، value ، session.RemoteendPoint ، dateTime.Now) ؛ // sendmsgtoremotepoint (SessionId ، SessionId + "disconnected") ؛ var sessionremove = listsession.firstordefault (s => s.sessionId == Session.SessionId) ؛ listsession.remove (SessionRemove) ؛ } /// <summary> /// connection connection /// </summary> /// <param name = "session"> </param> private void sessionconnected (sessionsession session) {debug.writeline ( listsession.add (new SessionInfo {SessionId = Session.SessionId ، Endpoint = session.RemoteendPoint.toString ()}) ؛ } /// <summary> /// message rece /// </summary> /// <param name = "session"> </param> /// <param name = "value"> </param> private void messagereceived (sessionfo ، value) foreach (var item في 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 (String SessionId) إذا (appsession! = null) appsession.send (msg) ؛ } MessageInfo {public string name {get ؛ تعيين؛ } رسالة السلسلة العامة {get ؛ تعيين؛ }} الفئة العامة SessionInfo {public String SessionId {get ؛ تعيين؛ } نقطة نهاية السلسلة العامة {get ؛ تعيين؛ } // اسم السلسلة العامة {get ؛ تعيين؛ }}}عميل:
@{viewbag.title = "index" ؛} <h2> index </h2> <script src = "../ scripts/jQuery-1.8.2.js"> </script> <type type = "text" id = "txtName"/> <input type = "button" id = "btndisconnection" /> <input type = "text" id = "txtinput" /> <input type = "button" value = "send" id = "btnsend" /> <div id = "msg"> </viv> <script language = "javaScript" type / var url = "ws: //192.168.1.106: 1010" $ ("#btnconnection"). انقر فوق (function () {if ("websocket" في النافذة) {ws = new websocke (url) ؛} Browser ") ؛ // قم بتسجيل عوامل رد فعل مختلفة ws.onopen = function () {$ ("#msg "). إلحاق ($ ("#txtName "). val () +" إضافة إلى غرفة الدردشة <br /> ") ؛} ws.onclose = function () {$ ("#mg "). Ws.Onmessage = rectivemsg) {$ ("MSG". }) ؛ //$("#btndisconnection"). click(function () {// $ ("#msg"). إلحاق ($ ("#txtName"). val () + "اترك غرفة الدردشة <br />") ؛ // ws.close () ؛ //}) ؛ $ ("#btnsend"). انقر فوق (function () {if (ws.ReadyState == websocket.open) {var message = "{/ $ ("#msg"). النص ("الاتصال مغلق!") ؛لخص
ما سبق هو استخدام WebSocket في Java لتنفيذ وظيفة الدردشة عبر الإنترنت التي قدمها المحرر إليك. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!