ruby-on-rails - Socket.io 客户端无法正常工作

标签 ruby-on-rails node.js sockets

我使用以下方法创建了聊天应用程序

  1. rails
  2. RabbitMQ
  3. nodejs(使用 amqplib/callback_api 和 socket.io)

我在服务器端有以下代码

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>

当我发送消息时,消息成功推送到队列并将消息发送到套接字。问题是仅刷新页面且未删除消息时我可以收到消息。

我不明白这里出了什么问题?

最佳答案

最终我解决了我的问题,问题是我在连接事件中放置了emit函数,这样我就可以在仅建立连接时获取数据,连接是在页面加载时建立的,这就是我仅在页面加载时获取数据的原因。

我有以下用于发出数据的代码

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

关于ruby-on-rails - Socket.io 客户端无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43003655/

相关文章:

html - <p> 如何显示一个变量

python - .NET Core 2.0 和 Angular 初始应用程序构建失败 - 找不到 python 后跟 JavaScript 运行时错误

node.js - node.js 应该监听哪些端口?如何以及为什么?

连接到奇怪的 SMTP 服务器

ruby-on-rails - Rails 5.1.6 AWS Elastic Beanstalk Yarn/Node JS 问题

ruby-on-rails - 使用 Rails 将数据库中的日期时间更改为简单的 %m/%d/%Y

node.js - 服务器集群上的 npm cluster 包

linux - 当 FIN 被接收且套接字发送缓冲区中仍有数据时,系统会做什么?

Java NIO.2 CompletetionHandler 未到达

javascript - 目录 : Accept File Upload and Copy&Paste Upload