【问题标题】:Angularjs connect to multiple sockets.ioAngularjs连接到多个sockets.io
【发布时间】:2015-11-04 06:28:52
【问题描述】:

我有两个节点在不同的端口上运行 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,...

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

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

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

我在这里做错了什么?

【问题讨论】:

    标签: angularjs node.js multithreading socket.io


    【解决方案1】:

    您不需要两次引用“socket.io.js”脚本,这可能会因覆盖某些内容而导致问题。试试看它是否有效。

    <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>
    

    【讨论】:

    • 我刚刚用基本的javascript(没有角度)测试了这个,它工作得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 2017-12-07
    • 1970-01-01
    • 2016-11-22
    相关资源
    最近更新 更多