diff options
author | TrueKuehli <rctcoaster2000@hotmail.de> | 2018-09-29 21:51:02 +0200 |
---|---|---|
committer | TrueKuehli <rctcoaster2000@hotmail.de> | 2018-09-29 21:51:02 +0200 |
commit | abd51697be6ca4580c15929ccb2569a1e984ef88 (patch) | |
tree | 690628078e50115b33c88a54c7f2d32ba43ac9ed /WebInterface/NodeJSServer/src/modules/server-client.js | |
parent | 68f153b254de6cc385a9c6ffebcde82e98a6adcc (diff) |
Did some code splitting and added Server Listing
Split code into different modules
Added method to fetch server list from remote server, and to populate this into the server list of the UI
Diffstat (limited to 'WebInterface/NodeJSServer/src/modules/server-client.js')
-rw-r--r-- | WebInterface/NodeJSServer/src/modules/server-client.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/WebInterface/NodeJSServer/src/modules/server-client.js b/WebInterface/NodeJSServer/src/modules/server-client.js new file mode 100644 index 0000000..8cf28f6 --- /dev/null +++ b/WebInterface/NodeJSServer/src/modules/server-client.js @@ -0,0 +1,67 @@ +import * as signalR from '@aspnet/signalr'; +import ServerListing from './ui/server-listing.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); +// }); |