在NodeJS中将WebSocket连接到WebSocketServer

时间:2017-03-27 09:49:32

标签: javascript node.js websocket

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

我有一个NodeJS应用程序和一个HTML页面,其中包含一些部署在CloudFoundry中的JavaScript。

在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'这当然是连接连接尚未打开。

它永远不会。任何人都可以建议任何帮助吗?

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

谢谢, 米奇。

1 个答案:

答案 0 :(得分:-3)

不用担心,

我解决了。

米奇。