scratch0-5 / ws /server /index.js
soiz1's picture
Upload folder using huggingface_hub
8f3f8db verified
var http = require("http");
var ws = require("ws");
var readline = require('readline');
function startServer(port) {
// Create HTTP server
var httpServer = new http.createServer();
// Create WebSocket server
var webSocketServer = new ws.Server({ noServer: true });
webSocketServer
.on("connection", function(ws) {
console.log("Connection made.");
// Allow interaction on connection
var io = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var handleIO = function() {
io.question("Next command: ", function(command) {
if (command) {
isClosed = isClosed || [ "quit", "exit", "bye" ].indexOf(command) >= 0;
if (!isClosed) {
ws.send(command);
} else {
ws.close();
io.close();
}
} else {
handleIO();
}
});
};
// Handle events
var isClosed = false;
ws
.on("message", function(message) {
console.log("Message received: " + message);
handleIO(); // Do next command
})
.on("close", function(code) {
console.log("Connection closed: " + code);
isClosed = true;
io.close();
})
;
// Send first command (will trigger IO handling)
ws.send("3 + 4");
})
;
// Start HTTP server
httpServer.on("upgrade", function(request, socket, head) {
console.log("Upgrading");
webSocketServer.handleUpgrade(request, socket, head, function(ws) {
webSocketServer.emit("connection", ws, request);
});
});
httpServer.listen(9000);
};
console.log("Starting WebSocketServer on port 9000");
console.log("Waiting on clients to connect...");
startServer();