Socket.io客户端无法正常工作

时间:2017-03-24 15:38:28

标签: ruby-on-rails node.js sockets

我使用以下

创建了聊天应用程序
  1. 滑轨
  2. 的RabbitMQ
  3. nodejs(使用amqplib / callback_api和socket.io)
  4. 我在服务器端有以下代码

    var amqp = require('amqplib/callback_api');
    var amqpConn = null;
    
    var app = require('http').createServer()
    var io = require('socket.io')(app);
    var fs = require('fs');
    
    io.on('connection', function (socket) {
            socket.emit('news/1', msg.content.toString());
            // socket.disconnect()
    });
    

    客户端

    <%= javascript_include_tag "http://localhost:53597/socket.io/socket.io.js"  %>
    <script>
    
    
    
    var socket = io('http://localhost:53597', {reconnect: true});
    
      socket.on('connect', function () {
        console.log('connected');
    
        socket.on('news/1', function (msg) {
          console.log('inside coming');
          console.log(msg);
        });
      });
    
    </script>
    

    当我发送消息时,消息成功推送到队列并且消息发送到套接字。问题是我只能在没有删除刷新页面和消息时收到消息。

    我无法理解这里出了什么问题?

1 个答案:

答案 0 :(得分:0)

最终我修复了我的问题,问题是我在连接事件中放置了emit函数,这样我只能在建立连接时获取数据,在页面加载时建立连接,这就是我只在页面加载时获取数据的原因

我有以下发射数据的代码

io.sockets.emit('news / 1',msg.content.toString());