Javascript:我可以在随机端口打开websocket服务器连接吗

标签 javascript

我想在随机端口创建网络服务器套接字连接。我想将服务器端口返回给调用应用程序或只是在终端中打印它。

创建服务器连接的典型代码如下。

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/

相关文章:

javascript - 在contenteditable中插入一个span,然后用户无法在刚刚插入的span之后和之后继续输入

javascript - 如何比较数组的多个对象中的属性值?

javascript - protobuf.js 将 proto 文件转换为 JSON 描述符,重复会丢失

javascript - 在 ComboBox 的焦点上而不是在键入时发送 Ajax 请求

javascript - 在 Nuxt.js 中解析外部 SCSS 文件中的图像路径

javascript - 在正则表达式 JavaScript 中捕获第三个 href?

javascript - 来自 localStorage 问题的 JSON.parse()

javascript - 使用 Electron 时,设计 HTML/CSS 布局的最佳方式是什么?

java - 小程序到对象标签

javascript - 转换为单例