public virtual void Send(TunnelMessage msg) { lock ( SendQueue ) { SendQueue.AddFirst(msg); } }
/// <summary> /// 实现 OnTunnelMessage 方法 /// 客户端推送消息到 WebSocket 信道服务器上后,会调用该方法,此时可以处理信道的消息。 /// 在本示例,我们处理 "speak" 类型的消息,该消息表示有用户发言。我们把这个发言的信息广播到所有在线的 WebSocket 信道上 /// </summary> /// <param name="tunnel">发送消息的信道</param> /// <param name="message">发送的消息数据</param> public void OnTunnelMessage(Tunnel tunnel, TunnelMessage message) { switch (message.Type) { // 目前只处理 "speak" 类型的消息,只要有客户端说话,就把这个消息广播到所有信道上 case "speak": if (userMap.ContainsKey(tunnel.Id)) { Broadcast("speak", new { who = userMap[tunnel.Id], word = message.Content.word }); } else { tunnel.Close(); } break; } }
public override void Send(TunnelMessage msg) { throw new NotImplementedException(); }
public virtual void Send(TunnelMessage msg) { SendQueue.Enqueue(msg); }