aboutsummaryrefslogtreecommitdiffhomepage
path: root/assets/js/chat.js
blob: 9543f875941b6f07703bd2ccef6382b3bd4384ea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var ChatTextInput = $("#ChatTextInput");
var SubscribeTextInput = $("#SubscribeTextInput");
var ChatResponses = $("#ChatResponses");

var WebSocket = new WebSocket('wss://marvinborner.ddnss.de:1337');
WebSocket.onopen = function () {
    //console.log("Chat connection established!");
};
WebSocket.onmessage = function (e) {
    var MessageObject = JSON.parse(e.data);
    if (MessageObject.ServerMessage === false) {
        ChatResponses.append(MessageObject.Username + " - " + MessageObject.Message + "<br>");
    } else if (MessageObject.ServerMessage === true) {
        if (MessageObject.ServerMessageType === "GroupJoin") {
            if (MessageObject.WasHimself === false) {
                ChatResponses.append(MessageObject.Username + " joined the group. <br>");
            } else if (MessageObject.WasHimself === true) {
                ChatResponses.empty();
                ChatResponses.append("You joined the group " + MessageObject.GroupName + ".<br>");
            }
        } else if (MessageObject.ServerMessageType === "UserDisconnect") {
            ChatResponses.append(MessageObject.Username + " disconnected from the Server.");
        }
    }
};

ChatTextInput.keyup(function (e) {
    if (e.keyCode === 13) {
        sendMessage(ChatTextInput.val());
        ChatTextInput.val("");
    }
});

SubscribeTextInput.keyup(function (e) {
    if (e.keyCode === 13) {
        subscribe(SubscribeTextInput.val());
    }
});

function subscribe(channel) {
    WebSocket.send(JSON.stringify({ClientMessageType: "Subscribe", Channel: channel}));
    SubscribeTextInput.hide();
    ChatTextInput.show();
}

function sendMessage(msg) {
    WebSocket.send(JSON.stringify({ClientMessageType: "Message", Message: msg}));
    ChatTextInput.val("");
}