//傳送最近訊息紀錄 private MessageDetail AddMessageinCache(string userName, string message) { MessageDetail NewMessage = new MessageDetail { UserName = userName, Time = DateTime.Now, Message = message }; CurrentMessage.Add(NewMessage); if (CurrentMessage.Count > 100) { CurrentMessage.RemoveAt(0); } return(NewMessage); }
//聊天內容的「公告」,散佈給所有人。 public void SendMessageToAll(string message) { string id = Context.ConnectionId; if (ConnectedUsers.ContainsKey(id)) { UserDetail CurrentUser = ConnectedUsers[id]; // store last 100 messages in cache MessageDetail NewMessage = AddMessageinCache(CurrentUser.UserName, message); // Broad cast message Clients.All.messageReceived(NewMessage); Log.Trace("{0}發送訊息{1}", CurrentUser.UserName, message); } }