在 NodeJS 中将 WebSocket 连接到 WebSocketServer

Posted

技术标签:

【中文标题】在 NodeJS 中将 WebSocket 连接到 WebSocketServer【英文标题】:Connecting a WebSocket to a WebSocketServer in NodeJS 【发布时间】:2017-03-27 09:49:31 【问题描述】:

我有一个简单的新手问题,希望有人能帮助我:

我有一个 NodeJS 应用程序和一个 html 页面,上面有一些 javascript 部署在 CloudFoundry 中。

在 app.js 服务器端 NodeJS 代码中,我启动了一个 WebSocket 服务器,如下所示:

var WebSocket = require('ws');
var WebSocketServer = require('ws').Server;

var wss = new WebSocketServer(
    server: server,
    autoAcceptConnections: true
);

wss.on('connection', function (ws) 
    ws.on('message', function (message, flags) 
        if (flags.binary) 
            var value1 = message.readDoubleLE(0);
            var value2 = message.readInt16LE(8);
            var value3 = message.readInt8(10);

            ws.send(message, 
                binary: true
            );
         else 
            if (message == "injest") 
                ws.send("requested: " + message);
             else if (message == "something") 
                wss.clients[0].send('server side initiated call');
             else 
                ws.send("received text: " + message);
            
        

    );
);

我可以从我的客户端 JavaScript 成功调用这个 WebSocketServer,例如:

function OnWebSocketConnectionMessage(event) 
    alert(event.data);


this.m_parent.m_WebsocketConnection = new
WebSocket('wss://MyWebSpace.MySiteURL');

this.m_parent.m_WebsocketConnection.onmessage =
    OnWebSocketConnectionMessage;

this.m_parent.m_WebsocketConnection.send(this.m_parent.m_editbox1.value);

这很好用。

我现在尝试从我的服务器端 NoeJS 代码调用这个 WebSocketServer,如下所示:

var ws = new WebSocket("wss://MyWebSpace.MySiteURL");

if (ws == null) 
    res.send("null");
 else 
    res.send(ws.readyState.toString());

但我得到的结果是“0”,当然是 CONNECTING 连接尚未打开。

而且它永远不会。任何人都可以提出任何帮助吗?

(如果我将端口:9090(或任何其他端口号)添加到我的服务器创建参数中,那么我的客户端 WebSocket 创建失败)。

谢谢, 米奇。

【问题讨论】:

【参考方案1】:

别担心,

我解决了。

米奇。

【讨论】:

你也许应该让其他搜索这个的人知道你是如何解决它的..

以上是关于在 NodeJS 中将 WebSocket 连接到 WebSocketServer的主要内容,如果未能解决你的问题,请参考以下文章

如何在NodeJS中代理websocket连接到其他websockets

通过 PHP 连接到 socket.io(nodejs)

将 NestJS 连接到 websocket 服务器

Socket.IO-Client-Swift 未连接到 nodejs socket.io 服务器

nodejs Websocket服务器 - 检测到可能的EventEmitter内存泄漏

在 NodejS 中附加 Docker Websocket