Socket.IO node.js的WebSocket连接无效端口8081(Socket.IO no

2019-06-27 04:56发布

我看到的这个论坛后的一些关于Socket.IO和node.js中 但仍然无法理想地工作。

端口80和8080是由我的web服务器为不同的应用中使用。 所以在App.js和我的插座连接我添加的端口8081,而不是8080。

我得到的WebSocket连接无效的消息。 10秒后,所以它创造了WebSocket的,我能够使用它非常清楚。

不过10秒太长。 任何想法如何解决这一问题?

的script.js:

 <script>
var socket = io.connect('http://domainname.nl:8081');


socket.on('connect', function(){

socket.emit('adduser', "<?php echo $user->first_name; ?>");
});

app.js

var app = require('express').createServer()
var io = require('socket.io').listen(8081);

app.listen(8081);

// routing
app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

更新:

当我改变了它。 我仍然有问题。 该插座的作品,但需要10秒来进行连接

 info  - socket.io started
   debug - served static /socket.io.js
   debug - client authorized
   info  - handshake authorized 15619940591959058675
   debug - setting request GET /socket.io/1/websocket/15619940591959058675
   debug - set heartbeat interval for client 15619940591959058675
   warn  - websocket connection invalid
   info  - transport end
   debug - set close timeout for client 15619940591959058675
   debug - cleared close timeout for client 15619940591959058675
   debug - cleared heartbeat interval for client 15619940591959058675
   debug - client authorized for
   debug - setting request GET /socket.io/1/xhr-polling/15619940591959058675?t=1345479037596
   debug - setting poll timeout
   debug - clearing poll timeout

Answer 1:

你有效尝试启动两个不同的服务器,一个为你的app ,一个用于socket.io,都使用同一端口, 8081

var app = require('express').createServer()
var io = require('socket.io').listen(8081);

app.listen(8081);

您可以传递给socket.io这样的端口号,但如果你要与节点的http服务器运行它,你会传递(即app )听,就像这样:

var app = require('express').createServer()
var io = require('socket.io').listen(app);

app.listen(8081);


Answer 2:

我通过代理连接时有同样的问题。

我的服务器(快递+ socket.io,像@Linux摹泰尔描述)在听取app.example.com:12345并有建立在为它服务的代理example-app.com (80端口)。 它工作正常通过实际的URL访问时,但通过代理访问时,表现出对WebSocket连接的10秒的延迟。

我已经成功通过简单地改变来解决它

var socket = io.connect();`

var socket = io.connect('http://app.example.com:12345')

在客户端的代码。



文章来源: Socket.IO node.js websocket connection invalid port 8081