[英]Unable to connect to a websocket in node js
我的計算機中運行着一個帶有URL“ ws:// localhost:1122”的websocket。 將其與普通javascript一起使用並將其部署在碼頭服務器中時,我能夠連接到websocket。
但是在使用節點js時,我無法連接到Web套接字。 我在兩種情況下都使用以下代碼
var socket = new WebSocket(URL);
在使用節點js時,我添加了以下var WebSocket = require("ws")
。 但是套接字的readyState永遠不會在節點js中變為OPEN。
我在節點js中缺少什么嗎,因為當使用碼頭作為服務器和普通的javascript時,我能夠連接到websocket。
這是我的app.js
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
}).listen(1131, "localhost");
var WebSocket = require("ws");
var wsUri = "ws://localhost:1122";
var socket;
printer();
function printer() {
socket = new WebSocket(wsUri);
console.log(socket.readyState);
}
由於Node.js的異步特性, socket.readyState
不會立即反映連接狀態。
相反,您應該使用事件發射器接口檢查是否/何時建立連接:
socket = new WebSocket(wsUri);
socket.on('open', function() {
console.log('connection opened');
}).on('close', function() {
console.log('connection closed');
}).on('error', function(e) {
console.log('connection error', e);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.