コード例 #1
0
 /// <summary>
 /// 发送消息给所有人
 /// </summary>
 /// <param name="msg">消息内容</param>
 /// <param name="sender">发送者</param>
 /// <returns></returns>
 public void SendAllMessage(SenMessge model)
 {
     //发送给所有人
     foreach (var session in this.CurrentContext
              .JsonWebSocketSessions)
     {
         //消息不发给自己
         if (session.Tag.ID != this.CurrentContext.Session.Tag.ID)
         {
             session.InvokeApi("onWebNotify", JsonConvert.SerializeObject(model, Setting));
         }
     }
 }
コード例 #2
0
        public RestResult SendMessageToUsers(string[] users, string message)
        {
            if (string.IsNullOrEmpty(message) == true)
            {
                return(RestResult.False("发送的内容不能为空"));
            }
            Console.WriteLine("{0} 收到后回复信息:{1}", this.CurrentContext.Session.RemoteEndPoint.ToString(), message);
            var name  = (string)this.CurrentContext.Session.Tag.Get("name").AsString(); // 发言人
            var model = new SenMessge(name, message);

            if (users.Length <= 0 || users[0] == "0")
            {
                SendAllMessage(model);
            }

            foreach (var user in users)
            {
                if (!string.IsNullOrEmpty(user.Trim()) && user != "0")
                {
                    var session = this.CurrentContext.JsonWebSocketSessions.Where(item => item.Tag.ID == user)
                                  .FirstOrDefault();
                    if (session == null)
                    {
                        model.sender  = "系统";
                        model.Content = user + " 已经离线.";
                        this.CurrentContext.Session.InvokeApi("onWebNotify", model);
                        continue;
                    }
                    //消息不发给自己
                    if (session.Tag.ID != this.CurrentContext.Session.Tag.ID)
                    {
                        session.InvokeApi("onWebNotify", model);
                    }
                }
            }
            return(RestResult.True("发送成功"));
        }