我想在随机端口创建网络服务器套接字连接。我想将服务器端口返回给调用应用程序或只是在终端中打印它。
创建服务器连接的典型代码如下。
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 0 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
所以我尝试在端口 0 创建服务器。我假设它将在随机端口创建服务器。我如何获得该随机端口?
一旦创建服务器套接字,我想知道端口号。
最佳答案
现在我可以在随机端口创建 websocket 服务器并获取端口号。不确定这是否是正确的方法,但它确实有效。
const http = require('http');
const WebSocket = require('ws');
const url = require('url');
const server = http.createServer();
const wss = new WebSocket.Server({ noServer: true });
wss.on('connection', function connection(ws) {
console.log(wss);
});
server.on('upgrade', function upgrade(request, socket, head) {
const pathname = url.parse(request.url).pathname;
wss.handleUpgrade(request, socket, head, function done(ws) {
wss.emit('connection', ws, request);
});
});
server.listen(0, '127.0.0.1', function incoming() {console.log (server.address().port);});
关于Javascript:我可以在随机端口打开websocket服务器连接吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57623344/