Angularjs连接到多个socket.io

时间:2015-08-11 20:57:28

标签: angularjs node.js multithreading socket.io

我有两个节点在不同的端口上运行socket.io。

我的代码包含脚本

    <script type="text/javascript" src="//example.com:8080/socket.io/socket.io.js"></script>
    <script type="text/javascript" src="//example.com:8081/socket.io/socket.io.js"></script> 

创建两个服务

app.factory("socket", function(){
  var socket = io.connect("http://example.com:8080");
  return socket;
}).factory("socket2", function(){
  var socket2 = io.connect("http://example.com:8081");
  return socket2;
});

在某些控制器中我注入并尝试与它们进行通信。

app.controller('someCtrl', function($scope, socket, socket2,...

它适用于第一个但不适用于第二个。

第二个套接字正在工作,因为它实际上服务于其他一些客户端,但我无法从该套接字发出或接收。

为了测试制作了两个相同的节点,仍然无法连接到第二个节点。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

您无需引用&#39; socket.io.js&#39;脚本两次,这可能会通过覆盖某些东西引起问题。试试看,看看它是否有效。

<script type="text/javascript" src="socket.io.js"></script>

<script type="text/javascript">

var socket1 = io.connect('http://127.0.0.1:3000');
var socket2 = io.connect('http://127.0.0.1:3001');

socket1.on('new message', function (data) {
  console.log('1st server');
});

socket2.on('new message', function (data) {
  console.log('2nd server');
});

</script>