Javascript 侦听chrome扩展内部的socket.io连接
我能够将socket.io连接从我的分机发送到我的服务器,但我听不到分机内服务器发出的信号。关于这个问题,我发现了相互矛盾的答案: 说这是不可能的;及 他说可以 是否有任何特殊配置必须更改才能接受来自套接字服务器的发射 编辑: (注意:我使用的是AngularJS,但它不应该与这个问题相关) socketFactory.js:Javascript 侦听chrome扩展内部的socket.io连接,javascript,node.js,sockets,google-chrome-extension,socket.io,Javascript,Node.js,Sockets,Google Chrome Extension,Socket.io,我能够将socket.io连接从我的分机发送到我的服务器,但我听不到分机内服务器发出的信号。关于这个问题,我发现了相互矛盾的答案: 说这是不可能的;及 他说可以 是否有任何特殊配置必须更改才能接受来自套接字服务器的发射 编辑: (注意:我使用的是AngularJS,但它不应该与这个问题相关) socketFactory.js: myApp.factory('socketFactory', function($rootScope) { var socket = io.connect('//de
myApp.factory('socketFactory', function($rootScope) {
var socket = io.connect('//dev.mydomain.com', {'path': '/api/socket'});
return socket;
}
inject.js:
var packetData = { 'some':'data', 'roomId':'123abc' };
socketFactory.emit('room:join', packetData);
...
socketFactory.on('room:update', function (data) {
console.log('Received data from socket server');
console.log(data)
}
socket.js(服务器端):
这是我连接的基本设置。当我在非扩展模式下启动应用程序时(我们正在进行扩展以模拟我们的Web应用程序),该系统工作正常,但在扩展模式下,room:update
从未触发
编辑2:
我们在socket.js
中的socket
对象(在connect上生成)上执行了console.log
。在标题中,主机是dev.mydomain.com
,而引用者是www.othersite.com
。这可能是问题所在吗?“主机”指的是什么?套接字服务器的主机,还是套接字侦听器的主机?在后一种情况下,它没有到达我们运行扩展的www.othersite.com
,这是有道理的
编辑3:…它不知从哪里开始工作。一定是某个地方的比赛条件。关闭不再相关的问题。它突然起作用。可能是比赛条件 你能发布一些详细说明这个问题的代码吗?这可能是客户端的错误
socket.on('room:join', function ( data ) {
// Setting socketId to detect disconnect
data.user.socketId = socket.id;
socket.join( data.roomId, function() {
// Some code ...
io.sockets.to(data.roomId).emit('room:update', {'some':'data', 'roomId': '123abc'});
}
});