Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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);
            }
        }
Example #5
0
        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);
        }