//消息处理事件 protected internal static bool HandleMsg_Event(WebSocket_Msg msg) { if (WebSocket_Msg_Trigger != null) { WebSocket_Msg_EventArgs pArgs = new WebSocket_Msg_EventArgs(msg); WebSocket_Msg_Trigger(null, pArgs); return(true); } return(true); }
//消息发送 public Task SendMessageAsync(string msgStr, string action = "", string msgTag = "") { WebSocket_Msg pMsg = new WebSocket_Msg() { Action = action, MsgStr = msgStr, MsgTag = msgTag, SendClientId = this.ID, SendClientChannelId = this.Channel }; var msg = JsonConvert.SerializeObject(pMsg); var msgBytes = Encoding.UTF8.GetBytes(msg); return(_webSocket.SendAsync(new ArraySegment <byte>(msgBytes, 0, msgBytes.Length), WebSocketMessageType.Text, true, CancellationToken.None)); }
//消息处理事件 protected internal bool HandleMsg_Event(WebSocket_Msg msg) { if (WebSocket_Msg_Trigger != null && msg != null) { WebSocket_Msg_EventArgs pArgs = new WebSocket_Msg_EventArgs(msg); //接收握手信息 if (msg.Action == "handshake") { this.ID = msg.SendClientId; this.IsConnect = true; } else { WebSocket_Msg_Trigger(this, pArgs); } return(true); } return(true); }
//处理WebSocket消息路由 private void HandleMessage(WebSocket_Msg msg) { var client = WebSocket_Coons.Get(msg.SendClientId); switch (msg.Action.ToLower()) { case "@*join*@": client.Channel = msg.MsgStr; break; case "@*leave*@": //置空Channel,模拟关闭连接 client.Channel = ""; client.WebSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None); WebSocket_Coons.Remove(client); break; default: break; } WebSocket_Server.HandleMsg_Event(msg); }
public WebSocket_Msg_EventArgs(WebSocket_Msg msg = null) { _msg = msg; }