簡體   English   中英

在NodeJS中將WebSocket連接到WebSocketServer

[英]Connecting a WebSocket to a WebSocketServer in NodeJS

我有一個簡單的新手問題,希望有人可以幫助我:

我有一個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連接尚未打開。

而且從來沒有。 有人可以建議任何幫助嗎?

(如果將port:9090(或任何其他端口號)添加到服務器創建參數中,則客戶端WebSocket創建失敗。

謝謝,米奇。

別擔心,

我解決了

米奇

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM