【发布时间】:2016-09-04 00:52:42
【问题描述】:
我正在使用 nodejs 和 websockets 创建一个在线游戏。作为 websocket 库,我正在使用模块“ws”。我没有使用 nodejs 来运行 HTTP 服务器我使用 apache + php 来托管网站/客户端和 nodejs 我只作为 websocket 服务器运行。
据我所知,要打开 websocket 连接(在端口 443 上),必须在另一个端口上进行握手。我使用的是 3000 端口(因为我的 apache 服务器在 80 端口上运行)。
在我的 server.js 文件(nodejs 启动的文件)上,我正在使用此代码来初始化 websocket 服务器:
var PORT = 3000;
var WebSocketServer = require('ws').Server;
var wsServer = new WebSocketServer({ port: PORT });
当访问 www.mywebsite.com:3000 时,我收到此短信“需要升级”。我想做的是在访问该端口时打印连接到服务器的客户端数量。由于我使用的是“ws”模块本地服务器,是否可以制作?
谢谢,如果您没有清楚地理解我的问题,请在 cmets 上告诉我。
【问题讨论】:
-
它不是那个问题的重复。因为我有一个 HTTP 服务器。我想要的是在浏览器不尝试创建 websocket 握手时在 PORT 3000 上显示在线客户端的数量。这样我就不必在 NodeJS 上保留 2 个服务器,并且可以节省一些 CPU。 (我认为仅仅为了打印一个数字而创建另一个服务器是不值得的)
-
另外,我运行 apache 的 HTTP 服务器位于一台具有一个 IP 的机器上,然后从我的网站中选择要建立 websocket 连接的服务器(根据您的位置)。我现在需要的是一种方法来打印每个服务器中的客户端数量,然后将其显示在我的主页上。我可以使用 websockets 来做到这一点,但我必须打开到每个服务器的 websocket 连接,然后在线请求客户端的数量。所以我认为在端口 3000 上打印数字会更容易
-
好吧,那你可能正在搜索stackoverflow.com/questions/20919947/… ...
-
至少,如果无法升级,ws WebsocketServer 似乎没有提供替代 API
-
CPU 使用率会不会一样?使用原生 WS 服务器还是传递对 HTTP 服务器的引用?
标签: javascript node.js websocket