public void SendMessage(string message, string username, long timestamp, string chatroomName) { ChatMessageTemplate chatMessage = new ChatMessageTemplate() { message = message, username = username, createdAt = timestamp, chatroomName = chatroomName }; socket.Emit("sendMessage", serializer.Serialize(chatMessage)); }
public void Initialize(object o) { socket.On("messageSent", (data) => { ChatMessageTemplate message = serializer.Deserialize <ChatMessageTemplate>((string)data); Application.Current?.Dispatcher?.Invoke(new Action(() => { NewMessage(message); }), DispatcherPriority.ContextIdle); }); socket.On("getChatroomsResponse", (data) => { RoomList roomlist = serializer.Deserialize <RoomList>((string)data); Application.Current?.Dispatcher?.Invoke(new Action(() => { GetChatrooms(roomlist); }), DispatcherPriority.ContextIdle); }); socket.On("createChatroomResponse", (data) => { CreateChatroomResponse response = serializer.Deserialize <CreateChatroomResponse>((string)data); Application.Current?.Dispatcher?.Invoke(new Action(() => { RoomCreation(response); }), DispatcherPriority.ContextIdle); }); socket.On("joinChatroomResponse", (data) => { JoinChatroomResponse response = serializer.Deserialize <JoinChatroomResponse>((string)data); try { Application.Current?.Dispatcher?.Invoke(new Action(() => { RoomJoin(response); }), DispatcherPriority.ContextIdle); } catch { } RequestChatrooms(); }); socket.On("leaveChatroomResponse", (data) => { RequestChatrooms(); }); socket.On("chatroomCreated", (data) => { RequestChatrooms(); }); // Makes sure the chatroom "MainRoom" is joined JoinChatroom("MainRoom"); }
private void NewMessage(ChatMessageTemplate message) { ChatMessage cm = new ChatMessage { sender = message.username, text = message.message, createdAt = DateTimeOffset.FromUnixTimeMilliseconds(message.createdAt).DateTime.ToLocalTime(), isOriginNative = (message.username == username) }; foreach (Room room in rooms) { if (room.name == message.chatroomName && !room.Chatter.Contains(cm)) { room.Chatter.Add(cm); } OnPropertyChanged("selectedRoom"); } }