public async Task MessageSend(IHubCallerClients clients, chatMessageRequest userInfoRequest) { var response = new chatMessageResponse() { SelfconnetionId = userInfoRequest.SelfconnetionId, MsgType = messageTypes.All, Message = userInfoRequest.Message }; var outputBuffer = new ArraySegment <byte>(response.ToByteArray(), 0, (int)response.ToByteArray().Length); await clients.All.SendAsync("brocaste", outputBuffer); }
public async Task MessageSend(chatMessageRequest userInfoRequest) { var response = new chatMessageResponse() { MsgType = messageTypes.All, Message = $"{userInfoRequest.User} 說:{userInfoRequest.Message}" }; var outputBuffer = new ArraySegment <byte>(response.ToByteArray(), 0, (int)response.ToByteArray().Length); //廣播濾掉自己的發言 var all_client = _client.clients.Where(w => w.Key != userInfoRequest.User).Select(s => s.Value); foreach (var item in all_client) { await item.SendAsync(outputBuffer, WebSocketMessageType.Binary, true, CancellationToken.None); } }
public async Task MessageSend(chatMessageRequest userInfoRequest) { var response = new chatMessageResponse { MsgType = messageTypes.Person, Message = $"{userInfoRequest.User} 私底下對你說: {userInfoRequest.Message}" }; var outputBuffer = new ArraySegment <byte>(response.ToByteArray(), 0, (int)response.ToByteArray().Length); var user = _client.clients.FirstOrDefault(w => w.Key == userInfoRequest.Touser); if (user.Value == null) { return; } await user.Value.SendAsync(outputBuffer, WebSocketMessageType.Binary, true, CancellationToken.None); }
public async Task MessageSend(chatMessageRequest userInfoRequest) { var response = new chatMessageResponse { MsgType = messageTypes.GetOnlineUsers }; var users = _client.clients.Select(s => new chatMessageResponse.Types.user() { ConnectionId = s.Key, Name = s.Key }); response.Users.Add(users); response.Cnt = _client.clients.Count(); var outputBuffer = new ArraySegment <byte>(response.ToByteArray(), 0, (int)response.ToByteArray().Length); foreach (var item in _client.clients.Values) { await item.SendAsync(outputBuffer, WebSocketMessageType.Binary, true, CancellationToken.None); } }
public async Task MessageSend(IHubCallerClients clients, chatMessageRequest userInfoRequest) { var response = new chatMessageResponse { MsgType = messageTypes.GetOnlineUsers }; var userRepository = await _clientUsers.GetOnlineUser(); var userCntRepository = await _clientUsers.GetOnlineUserCnt(); var users = userRepository.Select(s => new chatMessageResponse.Types.user() { ConnectionId = s.Key, Name = s.Value }); response.Users.AddRange(users); response.Cnt = userCntRepository; response.SelfconnetionId = userInfoRequest.SelfconnetionId; var outputBuffer = new ArraySegment <byte>(response.ToByteArray(), 0, (int)response.ToByteArray().Length); await clients.All.SendAsync("getonlineUser", outputBuffer); }