Il y a longtemps, afin d'atteindre rapidement l'effet, j'ai utilisé des sondages pour mettre en œuvre la fonction de chat en ligne. Plus tard, j'ai accidentellement contacté la prise. En ce qui concerne Socket, ma compréhension est entre la communication de processus. Tout d'abord, il doit y avoir un serveur et un client. Le service démarre et écoute un certain port IP pour localiser le processus. Le client ouvre le socket alloue le port IP pour se connecter au port IP sur le serveur, de sorte que la communication entre les deux processus peut être effectuée. Dessinez une image simple ci-dessous pour comprendre.
Mais, aujourd'hui, je prévois toujours de partager l'utilisation de WebSocket, de mettre d'abord l'effet, puis de coller le code.
La première étape consiste à démarrer le service de socket.
Ensuite, connectez-vous au client et connectez-vous au serveur, rejoignez la salle de chat et utilisez Googel (Bai Yujing, Shen Lang), Firefox (Chu Liuxiang) et I (Li Xunhuan) pour tester, et l'effet est le suivant.
*
********************* Débrancher.
************************ Débrancher.
Vous trouverez ci-dessous le code source de ce test.
Serveur:
classe publique TestWebSocketController: Controller {WebSocketServer Server; List <essionInfo> listSession = new List <SessionInfo> (); public ActionResult Index () {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; // nouveau message recevant server.newMessageReceived + = MessageReceived; if (! Server.Start ()) {// Traiter le message de défaillance d'écoute renvoie "erreur"; } return "succès"; } /// <summary> /// Session Close /// </summary> /// <param name = "Session"> </ Param> /// <param name = "Value"> </ Param> VOID SessionClosé (Session WebSocketSession, SuperSocket.SocketBase.CloseReason) {Debug.WriteLine ("Session Closes, Maison à la fermeture: {0} From: {1} Temps: Session Closes, Maison pour la fermeture: {0} From:} Temps: Session Closes, Maison pour la fermeture: {0} From: 1} {2: hh: mm: ss} ", valeur, session.remoteendpoint, datetime.now); // sendmsGToreMotePoint (sessionId, sessionID + "Disconnecté"); var sessionRemove = listSession.FirstorDefault (s => s.SessionId == Session.SessionId); listSession.Remove (SessionRemove); } /// <summary> /// Session Connection /// </summary> /// <param name = "Session"> </ param> private void SessionConned (WebSocketSession Session) {Debug.WriteLine ("New SessionID: {1} Time: {2: HH: MM: SS}", session.remoteendPoint, Session.Sessiond, Datimetime.Now); listSession.add (new SessionInfo {sessionId = session.SessionId, endpoint = session.remoteendpoint.toString ()}); } /// <summary> /// message reçoile /// </ résumé> /// <param name = "session"> </ param> /// <param name = "value"> </amor> private void MessageReceived (WebSocketSession Session, String Value) {// message désérialize contenu var); foreach (var item dans listSession) {/// Envoyer le message sendmsg (item.sessionId, string.format ("{0} Envoyer le message: {1}", message.name, message.message)); }} // <summary> /// Envoyer un message /// </ résumé> /// <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; ensemble; } Message de chaîne publique {get; ensemble; }} public class sessionInfo {public String SessionId {get; ensemble; } public String endpoint {get; ensemble; } // Nom de chaîne publique {get; ensemble; }}}Client:
@ {Viewbag.title = "index";} <h2> index </h2> <script src = "../ scripts / jQuery-1.8.2.js"> </ script> <entrée type = "Text" id = "txtname" /> <entrée type = "Button" Value = "Button" Butter = "Butter" Id = "btnconnection" /> <fant Type = "Button =" Value = The Chat Room " id = "btndisconnection" /> <input type = "text" id = "txTinput" /> <input type = "Button" value = "send" id = "btnsend" /> <div id = "msg"> </ div> <script linguisse = "javascript" type = "text / javascript"> var ws; var url = "ws: //192.168.1.106: 1010" $ ("# btnconnection"). Cliquez sur (fonction () {if ("WebSocket" dans Window) {ws = new WebSocket (url);} else if ("mozwebsocket" dans la fenêtre) {ws = new Mozwebsocket (url);} else alert ("la version Brower est bas, vous plaider (Url); Browser "); // Enregistrer divers rappels ws.Openn = function () {$ (" # msg "). APPEND ($ (" # txtName "). Val () +" Ajouter à la salle de chat <br /> ");} ws.Onclose = function () {$ (" # msg "). Ws.Onmessage = Fonction (Receivemsg) {$ (# msg "). }); //$("#btndisconnection").click(Function () {// $ ("# msg"). APPEND ($ ("# txtName"). Val () + "Laissez la salle de chat <br />"); // wsclose (); //}); $ ("# btnsend"). cliquez (fonction () {if (ws.readystate == Websocket.open) {var message = "{/" name / ": /" "+ $ (" # txtName "). Val () +" / ", /" message / ": /" "+ $ (" # txtinput "). $ ("# msg"). Texte ("La connexion est fermée!");Résumer
Ce qui précède est l'utilisation de WebSocket en Java pour implémenter la fonction de chat en ligne que l'éditeur vous a présenté. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!