d2d856d0 by Glitch (hello-express)

:pear::school: Checkpoint

./server.js:13690106/2267
1 parent 1dd53103
Showing 1 changed file with 14 additions and 16 deletions
...@@ -4,31 +4,29 @@ const http = require('http'); ...@@ -4,31 +4,29 @@ const http = require('http');
4 const WebSocket = require('ws'); 4 const WebSocket = require('ws');
5 var server = http.createServer().listen(3000); 5 var server = http.createServer().listen(3000);
6 6
7 var gun1 = Gun({peers:[], ws: { noServer: true}}); 7 // LRU with last used sockets
8 var gun2 = Gun({peers:[], ws: { noServer: true}});
9
10 const QuickLRU = require('quick-lru'); 8 const QuickLRU = require('quick-lru');
11 const lru = new QuickLRU({maxSize: 100}); 9 const lru = new QuickLRU({maxSize: 100});
12 10
13 var wss_event = new WebSocket.Server({ noServer: true}); 11 var wss_event = new WebSocket.Server({ noServer: true});
14 12
15 server.on('upgrade', function (request, socket, head) { 13 server.on('upgrade', async function (request, socket, head) {
16 var pathname = url.parse(request.url).pathname; 14 var pathname = url.parse(request.url).pathname || '/gun';
17 var gun 15 var gun = false;
16 if (pathname){
18 if (lru.has(pathname)){ 17 if (lru.has(pathname)){
19 18 // Existing Node
19 gun = await lru.get(pathname);
20 } else { 20 } else {
21 var gun = Gun({peers:[], ws: { noServer: true}}); 21 // Create Node
22 gun = await Gun({peers:[], ws: { noServer: true}});
22 lru.set(pathname,gun); 23 lru.set(pathname,gun);
23 } 24 }
24 25 }
25 if (pathname === '/gun1') { 26 if (gun){
26 gun1.handleUpgrade(request, socket, head, function (ws) { 27 // Handle Request
27 gun1.emit('connection', ws); 28 gun.handleUpgrade(request, socket, head, function (ws) {
28 }); 29 gun.emit('connection', ws);
29 } else if (pathname === '/gun2') {
30 gun2.handleUpgrade(request, socket, head, function (ws) {
31 gun2.emit('connection', ws);
32 }); 30 });
33 } else { 31 } else {
34 socket.destroy(); 32 socket.destroy();
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!