Node.js socket.io客户端';发射';显示chrome控制台中的一个奇怪错误

Node.js socket.io客户端';发射';显示chrome控制台中的一个奇怪错误,node.js,socket.io,emit,Node.js,Socket.io,Emit,我正在Windows上使用当前最新版本的nodejs+socket.io开发一个简单的应用程序。在客户端创建套接字时,我遇到了一个问题,但是socket.emit会在控制台中产生以下输出(使用Google Chrome): 这很奇怪,因为我在localhost:8888上测试,所以它至少应该是127.0.0.1,而不是0.0.34.184。页面上的socket.io客户端是从标记中的服务器请求的,如下所示: <script type="text/javascript" src="socke

我正在Windows上使用当前最新版本的nodejs+socket.io开发一个简单的应用程序。在客户端创建套接字时,我遇到了一个问题,但是socket.emit会在控制台中产生以下输出(使用Google Chrome):

这很奇怪,因为我在localhost:8888上测试,所以它至少应该是127.0.0.1,而不是0.0.34.184。页面上的socket.io客户端是从标记中的服务器请求的,如下所示:

<script type="text/javascript" src="socket.io/socket.io.js"></script>
日志说明socket=[Object Object],它不是null或未定义的,所以所有东西都应该工作

发送itseld在以下功能中执行:

function sendRequest(request){
    socket.emit('request', request);
}
传递给函数的请求对象的格式和传递方式如下:

var initRequest = {};
initRequest.subject = 'weather';
initRequest.key = 'initial';

sendRequest(initRequest);
同样,根据
console.log()
,它是一个有效的json对象


所有这些让我完全不知道发生这种情况的任何可能原因。

尝试将http://添加到连接路径。这为我解决了这个错误

socket = io.connect('http://localhost:8888');

尝试将http://添加到连接路径。这为我解决了这个错误

socket = io.connect('http://localhost:8888');

我面临同样的问题,但我有不同的理由。我的安装程序在端口为9000的tomcat服务器上运行socket客户端,并连接到运行nodejs的localhost:80,但我没有意识到该端口是必需的,即使默认为80

因此,我给了端口并替换了它

io.connect('http://localhost“”与io.connect('http://localhost:80")

因为我的两台服务器都指向同一个域,在本例中是localhost。。。由于某种原因,套接字io占用了端口9000


希望它能帮助别人。

我面临同样的问题,但原因不同。我的安装程序在端口为9000的tomcat服务器上运行socket客户端,并连接到运行nodejs的localhost:80,但我没有意识到该端口是必需的,即使默认为80

因此,我给了端口并替换了它

io.connect('http://localhost“”与io.connect('http://localhost:80")

因为我的两台服务器都指向同一个域,在本例中是localhost。。。由于某种原因,套接字io占用了端口9000


希望它能帮助一些人。

我也遇到了同样的问题,但通过只强制对服务器端javascript进行xhr轮询解决了这个问题,这就解决了

    var io = require('socket.io').listen(8000);
    io.configure(function () {
      io.set('transports', ['xhr-polling']);
    });
<..Rest code..>
var io=require('socket.io')。监听(8000);
io.configure(函数(){
io.set('transports',['xhr-polling']);
});

我也面临着同样的问题,但通过只强制对服务器端javascript进行xhr轮询解决了这个问题,这就解决了

    var io = require('socket.io').listen(8000);
    io.configure(function () {
      io.set('transports', ['xhr-polling']);
    });
<..Rest code..>
var io=require('socket.io')。监听(8000);
io.configure(函数(){
io.set('transports',['xhr-polling']);
});

我真不敢相信。我已经花了将近一天的时间试图抓住这个虫子!事实证明,我只是没有把“http://”部分放在“localhost:8888”地址前面!!!所以这里出现的零是我猜的那些乱七八糟的位……但我仍然很困惑,为什么socket.io在这方面如此无知,而novadays通常不强制执行的http是如此容易忘记。它至少可能会抛出一个警告,因为客户端套接字不能打开到http以外的任何地方,而且很明显URL中缺少标头。我无法相信这一点。我已经花了将近一天的时间试图抓住这个虫子!事实证明,我只是没有把“http://”部分放在“localhost:8888”地址前面!!!所以这里出现的零是我猜的那些乱七八糟的位……但我仍然很困惑,为什么socket.io在这方面如此无知,而novadays通常不强制执行的http是如此容易忘记。它至少会抛出一个警告,因为客户端套接字不能打开到http以外的任何地方,而且很明显URL中缺少标头。谢谢。对于任何感兴趣的人,将window.location.href切换到window.location.origin将http://添加到我连接的URL(使用Chrome)谢谢。对于任何感兴趣的人,将window.location.href切换到window.location.origin会将http://添加到我连接的URL(使用Chrome)