Reconnect automatically
This commit is contained in:
parent
b11d5b51ed
commit
26b2bdc6e5
1 changed files with 42 additions and 36 deletions
78
index.js
78
index.js
|
@ -34,47 +34,53 @@ app.get("/v1/lanyard", (req, res) => {
|
||||||
// console.log("API is now listening on port 8080!")
|
// console.log("API is now listening on port 8080!")
|
||||||
// })
|
// })
|
||||||
|
|
||||||
var lanyard = new WebSocket('wss://api.lanyard.rest/socket')
|
function socketeer() {
|
||||||
|
var lanyard = new WebSocket('wss://api.lanyard.rest/socket')
|
||||||
|
|
||||||
function beat(dur) {
|
function beat(dur) {
|
||||||
lanyard.send(JSON.stringify({
|
|
||||||
op: 3
|
|
||||||
}))
|
|
||||||
setTimeout(() => {
|
|
||||||
beat(dur)
|
|
||||||
}, dur);
|
|
||||||
}
|
|
||||||
|
|
||||||
lanyard.addEventListener("message", async (res) => {
|
|
||||||
var data = JSON.parse(res.data)
|
|
||||||
if (data.op == 1) {
|
|
||||||
beat(data.d.heartbeat_interval)
|
|
||||||
lanyard.send(JSON.stringify({
|
lanyard.send(JSON.stringify({
|
||||||
op: 2,
|
op: 3
|
||||||
d: {
|
|
||||||
subscribe_to_id: "534132311781015564"
|
|
||||||
}
|
|
||||||
}))
|
}))
|
||||||
} else if (data.op == 0) {
|
setTimeout(() => {
|
||||||
lanyardData = data
|
beat(dur)
|
||||||
|
}, dur);
|
||||||
|
}
|
||||||
|
|
||||||
for (let index = 0; index < sockets.length; index++) {
|
lanyard.addEventListener("message", async (res) => {
|
||||||
var socketData = sockets[index]
|
var data = JSON.parse(res.data)
|
||||||
var socket = socketData.socket;
|
if (data.op == 1) {
|
||||||
socket.send(JSON.stringify(lanyardData))
|
beat(data.d.heartbeat_interval)
|
||||||
|
lanyard.send(JSON.stringify({
|
||||||
|
op: 2,
|
||||||
|
d: {
|
||||||
|
subscribe_to_id: "534132311781015564"
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
} else if (data.op == 0) {
|
||||||
|
lanyardData = data
|
||||||
|
|
||||||
if ((Date.now() - socketData.lastPing) > 120000) {
|
for (let index = 0; index < sockets.length; index++) {
|
||||||
sockets.splice(index, 1)
|
var socketData = sockets[index]
|
||||||
|
var socket = socketData.socket;
|
||||||
|
socket.send(JSON.stringify(lanyardData))
|
||||||
|
|
||||||
|
if ((Date.now() - socketData.lastPing) > 120000) {
|
||||||
|
sockets.splice(index, 1)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
})
|
|
||||||
|
|
||||||
lanyard.on('close', () => {
|
lanyard.on('close', () => {
|
||||||
console.log("Disconnected")
|
console.log("Disconnected")
|
||||||
})
|
setTimeout(() => {
|
||||||
|
socketeer()
|
||||||
|
}, 60000)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// wsServer = new WebSocket.WebSocketServer({ port: 8090 })
|
// wsServer = new WebSocket.WebSocketServer({ port: 8090 })
|
||||||
|
|
||||||
wsServer = WebSocket.Server;
|
wsServer = WebSocket.Server;
|
||||||
let server = require('http').createServer()
|
let server = require('http').createServer()
|
||||||
wsServer = new wsServer({
|
wsServer = new wsServer({
|
||||||
|
@ -93,17 +99,17 @@ wsServer.on("connection", function connection(socket) {
|
||||||
sockets[index].lastPing = Date.now()
|
sockets[index].lastPing = Date.now()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
socket.send(`{"op": 3}`)
|
socket.send(`{"op": 3}`)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
socket.send(JSON.stringify(lanyardData))
|
socket.send(JSON.stringify(lanyardData))
|
||||||
socket.send(`{ "op": 1 }`)
|
socket.send(`{ "op": 1 }`)
|
||||||
|
|
||||||
sockets.push({socket, lastPing: Date.now()})
|
sockets.push({ socket, lastPing: Date.now() })
|
||||||
})
|
})
|
||||||
|
|
||||||
server.listen(PORT, function() {
|
server.listen(PORT, function () {
|
||||||
console.log("API & Websocket now on port: " + PORT)
|
console.log("API & Websocket now on port: " + PORT)
|
||||||
})
|
})
|
Loading…
Reference in a new issue