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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
import * as signalR from '@aspnet/signalr';
import ServerListing from './ui/server-listing.js';
import ServerCreator from './ui/server-creator.js';
export default class ServerClient {
constructor(url, serverListingId, debug = false) {
const connectionBuilder = new signalR.HubConnectionBuilder()
.withUrl(url)
if (debug) {
connectionBuilder.configureLogging(signalR.LogLevel.Debug);
} else {
connectionBuilder.configureLogging(signalR.LogLevel.Error);
}
this.connection = connectionBuilder.build();
this.connection.start()
.then(() => this.loadServers())
.catch(() => err => console.error(err.toString()));
this.refreshing = false;
this.serverListing = new ServerListing(serverListingId);
}
loadServers() {
if (this.refreshing) return;
this.connection.on('ListGroups', (groups) => {
console.log(groups)
this.serverListing.flushElements();
this.serverListing.addElements(groups);
this.connection.off('ListGroups');
this.refreshing = false;
});
this.connection.invoke('GetGroups')
.catch(err => {
this.refreshing = false;
console.error(err.toString())
});
this.refreshing = true;
}
createServer(){
}
messageHandling(){
this.connection.on('ReceiveMessage', (user, message) => {
let msg = message.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">");
let encodedMsg = user + " sagt: " + msg;
});
}
}
// connection.on('ReceiveMessage', (user, message) => {
// let msg = message.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
// let encodedMsg = user + " says " + msg;
// let li = document.createElement("div");
// li.classList.add('server');
// li.textContent = encodedMsg;
// document.getElementById('server-list').appendChild(li);
// });
|