簡體   English   中英

無法連接到節點js中的Websocket

[英]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.

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