bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Java中使用websocket實現在線聊天功能-創新互聯

很早以前為了快速達到效果,使用輪詢實現了在線聊天功能,后來無意接觸了socket,關于socket我的理解是進程間通信,首先要有服務器跟客戶端,服務的啟動監聽某ip端口定位該進程,客戶端開啟socket分配ip端口連接服務端ip端口,于是兩個進程間便可以通信了。下面簡單畫個圖理解。

創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:做網站、成都網站建設、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的靈壽網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

but,今天還是準備分享websocket的使用,先上效果,再貼代碼。

第一步啟動socket服務。

然后連接客戶端連接服務器,加入聊天室,分別使用googel(白玉京,沈浪),火狐(楚留香),ie(李尋歡)進行測試,效果如下。

*

*****************斷開一下。

******************斷開一下。

下面是本次測試源碼。

服務端:

 public class TestWebSocketController : Controller
  {
    WebSocketServer server;
    List<SessionInfo> listSession = new List<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服務啟動Error";
      }
      //新的會話連接
      server.NewSessionConnected += SessionConnected;
      //會話關閉
      server.SessionClosed += SessionClosed;
      //新的消息接收
      server.NewMessageReceived += MessageReceived;
      if (!server.Start())
      {
        //處理監聽失敗消息
        return "error";
      }
      return "success";
    }
    /// <summary>
    /// 會話關閉
    /// </summary>
    /// <param name="session"></param>
    /// <param name="value"></param>
    private void SessionClosed(WebSocketSession session, SuperSocket.SocketBase.CloseReason value)
    {
      Debug.WriteLine("會話關閉,關閉原因:{0} 來自:{1} 時間:{2:HH:MM:ss}", value, session.RemoteEndPoint, DateTime.Now);
      //SendMsgToRemotePoint(SessionId, SessionId + "已斷開");
      var sessionRemove = listSession.FirstOrDefault(s => s.SessionId == session.SessionID);
      listSession.Remove(sessionRemove);
    }
    /// <summary>
    /// 會話連接
    /// </summary>
    /// <param name="session"></param>
    private void SessionConnected(WebSocketSession session)
    {
      Debug.WriteLine("新的會話連接 來自:{0} SessionID:{1} 時間:{2:HH:MM:ss}", session.RemoteEndPoint, session.SessionID, 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)
    {
      //反序列化消息內容
      var message = JsonConvert.DeserializeObject<MessageInfo>(value);
      foreach (var item in 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, string msg)
    {
      var appSession = server.GetAppSessionByID(sessionId);
      if (appSession != null)
        appSession.Send(msg);
    }
    public class MessageInfo
    {
      public string Name { get; set; }
      public string Message { get; set; }
    }
    public class SessionInfo
    {
      public string SessionId { get; set; }
      public string EndPoint { get; set; }
      //public string Name { get; set; }
    }
  }

網站欄目:Java中使用websocket實現在線聊天功能-創新互聯
文章分享:http://vcdvsql.cn/article28/ddhecp.html

成都網站建設公司_創新互聯,為您提供建站公司網站改版App開發標簽優化網站設計公司網站營銷

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

小程序開發