Compare commits
No commits in common. "c9b985f7686ddb558c8c0be4edf7512d7019b2e6" and "b3cab9081020d6dee978b82344469779e923f3b9" have entirely different histories.
c9b985f768
...
b3cab90810
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "schat2-clive",
|
"name": "schat2-clive",
|
||||||
"version": "1.28.0",
|
"version": "1.27.3",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "schat2-clive",
|
"name": "schat2-clive",
|
||||||
"version": "1.28.0",
|
"version": "1.27.3",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"better-sqlite3": "^8.3.0",
|
"better-sqlite3": "^8.3.0",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "schat2-clive",
|
"name": "schat2-clive",
|
||||||
"version": "1.28.0",
|
"version": "1.27.3",
|
||||||
"description": "Game host for SChat 2-powered chat sites",
|
"description": "Game host for SChat 2-powered chat sites",
|
||||||
"main": "src/app.js",
|
"main": "src/app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
37
src/schat.js
37
src/schat.js
|
@ -3,7 +3,8 @@
|
||||||
const config = require('config');
|
const config = require('config');
|
||||||
const { setTimeout: delay } = require('timers/promises');
|
const { setTimeout: delay } = require('timers/promises');
|
||||||
const bhttp = require('bhttp');
|
const bhttp = require('bhttp');
|
||||||
const WebSocket = require('ws');
|
// const WebSocket = require('ws');
|
||||||
|
const io = require('socket.io-client');
|
||||||
const logger = require('simple-node-logger').createSimpleLogger();
|
const logger = require('simple-node-logger').createSimpleLogger();
|
||||||
const { argv } = require('yargs');
|
const { argv } = require('yargs');
|
||||||
|
|
||||||
|
@ -143,13 +144,29 @@ async function connect(bot, games) {
|
||||||
|
|
||||||
logger.info(`Attempting to connect to ${config.socket}`);
|
logger.info(`Attempting to connect to ${config.socket}`);
|
||||||
|
|
||||||
socket.ws = new WebSocket(`${config.socket}?${new URLSearchParams({ v: wsCreds.wsId, t: wsCreds.timestamp }).toString()}`, [], {
|
const { origin, pathname } = new URL(config.socket);
|
||||||
headers: {
|
|
||||||
|
socket.io = io(origin, {
|
||||||
|
transports: ['websocket'],
|
||||||
|
path: pathname,
|
||||||
|
query: {
|
||||||
|
v: wsCreds.wsId,
|
||||||
|
t: wsCreds.timestamp,
|
||||||
|
},
|
||||||
|
extraHeaders: {
|
||||||
cookie: sessionCookie,
|
cookie: sessionCookie,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.ws.on('message', async (msg) => {
|
socket.io.on('connect', () => {
|
||||||
|
logger.info(`Connected to ${config.socket}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.io.on('connect_error', (error) => {
|
||||||
|
logger.info(`Failed to connect to ${config.socket}: ${error}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.io.on('_', async (msg) => {
|
||||||
const [domain, data] = JSON.parse(msg);
|
const [domain, data] = JSON.parse(msg);
|
||||||
|
|
||||||
logger.debug(`Received ${domain}: ${JSON.stringify(data)}`);
|
logger.debug(`Received ${domain}: ${JSON.stringify(data)}`);
|
||||||
|
@ -163,18 +180,14 @@ async function connect(bot, games) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.ws.on('close', async (info) => {
|
/* reconnect logic handled by SocketIO
|
||||||
|
socket.io.on('disconnect', async (info) => {
|
||||||
logger.error(`WebSocket closed, reconnecting in ${config.reconnectDelay} seconds: ${info}`);
|
logger.error(`WebSocket closed, reconnecting in ${config.reconnectDelay} seconds: ${info}`);
|
||||||
|
|
||||||
await delay(config.reconnectDelay * 1000);
|
await delay(config.reconnectDelay * 1000);
|
||||||
socket.connect();
|
socket.connect();
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
socket.ws.on('error', async (error) => {
|
|
||||||
logger.error(`WebSocket error: ${error.message}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
logger.info(`Connected to ${config.socket}`);
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error(`Failed to connect, retrying in ${config.reconnectDelay} seconds: ${error.message}`);
|
logger.error(`Failed to connect, retrying in ${config.reconnectDelay} seconds: ${error.message}`);
|
||||||
|
|
||||||
|
@ -184,7 +197,7 @@ async function connect(bot, games) {
|
||||||
};
|
};
|
||||||
|
|
||||||
socket.transmit = (domain, data) => {
|
socket.transmit = (domain, data) => {
|
||||||
socket.ws.send(JSON.stringify([domain, data]));
|
socket.io.emit('_', JSON.stringify([domain, data]));
|
||||||
};
|
};
|
||||||
|
|
||||||
socket.connect();
|
socket.connect();
|
||||||
|
|
Loading…
Reference in New Issue