示例#1
0
 public virtual void Send(TunnelMessage msg)
 {
     lock ( SendQueue )
     {
         SendQueue.AddFirst(msg);
     }
 }
示例#2
0
 /// <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;
     }
 }
示例#3
0
 public override void Send(TunnelMessage msg)
 {
     throw new NotImplementedException();
 }
示例#4
0
 public virtual void Send(TunnelMessage msg)
 {
     SendQueue.Enqueue(msg);
 }