private async Task SendChatMessageAsync(string roomId, GameChat.MessageType type, string Message) { GameChat.ChatMessage chat_msg = new GameChat.ChatMessage() { RoomId = roomId, Message = Message, MessageType = type, }; var msg = JsonConvert.SerializeObject(chat_msg); await Cache.Instance.GetSubscriber().PublishAsync($"room:{roomId}", msg); }
public override async Task JoinRoom(GameChat.JoinRoomRequest request, IServerStreamWriter <GameChat.ChatMessage> responseStream, ServerCallContext context) { var reply1 = new GameChat.ChatMessage() { Code = GameChat.ErrorCode.Success, RoomId = request.RoomId, Message = "welcome join", }; await responseStream.WriteAsync(reply1); await WaitRoomAsync(request.RoomId, responseStream, context); }
public override async Task CreateRoom(GameChat.CreateRoomRequest request, IServerStreamWriter <GameChat.ChatMessage> responseStream, ServerCallContext context) { var roomId = Guid.NewGuid().ToString(); var reply1 = new GameChat.ChatMessage() { Code = GameChat.ErrorCode.Success, RoomId = roomId, Message = "welcome", }; await Cache.Instance.GetDatabase().SortedSetAddAsync($"room_z", roomId, DateTime.UtcNow.ToEpochTime()); await Cache.Instance.GetDatabase().StringSetAsync($"room_info:{roomId}", request.RoomName); await responseStream.WriteAsync(reply1); await WaitRoomAsync(roomId, responseStream, context); }