Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        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");
            }
        }