如何与 express 应用程序并行启动 websocket 服务器?
How to spin up a websocket server paralelly along with express app?
我有一个快速应用程序和一个 websocket 脚本。
我在 www.js 文件中创建服务器并启动 express 应用程序。
我面临的问题是,我无法在 www.js 文件中实例化 websocket。
这是www.js
....
const server = http.createServer(app);
server.listen(port);
server.on("error", onError);
server.on("listening", onListening);
....
这是websocket.js
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
我知道 const wss = new Websocket.Server({ port: 8080 });
行创建了 websocket 实例...但我希望能够在 www.js 文件中创建此实例,并在单独的文件中创建 websocket 的所有逻辑。
将http服务器实例传递给websocket服务器,
const wss = new Websocket.Server({ server: server });
如果你想将它作为一个单独的模块分离到一个文件中,
const WebSocket = require('ws');
const initWSServer = (server) => {
const wss = new WebSocket.Server({ server: server});
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
}
module.exports = {
initWSServer
}
然后,
const server = http.createServer(app);
server.listen(port);
server.on("error", onError);
server.on("listening", onListening);
const ws_server = require('./websocket.js');
ws_server.initWSServer(server);
我有一个快速应用程序和一个 websocket 脚本。 我在 www.js 文件中创建服务器并启动 express 应用程序。
我面临的问题是,我无法在 www.js 文件中实例化 websocket。
这是www.js
....
const server = http.createServer(app);
server.listen(port);
server.on("error", onError);
server.on("listening", onListening);
....
这是websocket.js
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
我知道 const wss = new Websocket.Server({ port: 8080 });
行创建了 websocket 实例...但我希望能够在 www.js 文件中创建此实例,并在单独的文件中创建 websocket 的所有逻辑。
将http服务器实例传递给websocket服务器,
const wss = new Websocket.Server({ server: server });
如果你想将它作为一个单独的模块分离到一个文件中,
const WebSocket = require('ws');
const initWSServer = (server) => {
const wss = new WebSocket.Server({ server: server});
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
}
module.exports = {
initWSServer
}
然后,
const server = http.createServer(app);
server.listen(port);
server.on("error", onError);
server.on("listening", onListening);
const ws_server = require('./websocket.js');
ws_server.initWSServer(server);