问题标签 [em-websocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
468 浏览

ruby - Sending large file in websocket before timeout

I'm using Faye and EventMachine to open a socket to another server. The server times out if it doesn't detect activity. How do I send the file (binary encoded) so the server doesn't time out?

Here's what I have:

0 投票
1 回答
770 浏览

ruby-on-rails - 检测 WebSocket 连接是否在服务器端终止

我想处理不同的 WebSocket 连接终止情况。如果通过注销或浏览器关闭在客户端终止,我应该发送电子邮件。如果它在服务器端终止(例如在服务器重新启动后),我应该什么都不做。

有没有办法检测以何种方式终止连接?

我使用 Rails 4.2 和 em-websocket gem。

0 投票
0 回答
313 浏览

ruby-on-rails - WebSocket 服务器设置

我在 Rails 应用程序中使用em-websocket gem。WebSocket 服务器在初始化程序中运行,它看起来是这样的:

WebSocket 服务器在我启动 rails 服务器时运行。它在开发环境中完美运行,但在测试服务器上不起作用,我在那里使用 Nginx 和Passenger。

有人知道如何使用Passenger 和Nginx 设置WebSockets 吗?

更新: 我在开发环境中使用瘦。在生产中我使用 Nginx 和Passenger,这些工具的设置是常用的。我在日志中没有错误消息。在浏览器控制台中,我有以下错误:

Nginx 配置:

我使用通常的 Ubuntu 服务器。

0 投票
1 回答
81 浏览

ruby-on-rails - Rails push EM-Socket

我正在编写 rails 应用程序,我希望用户在新消息保存到数据库后立即收到通知。对于 websocket,我使用的是 em-websocket gem。连接后,我将客户端 ID 和套接字实例存储在数组中。

问题:如何将数据从控制器\模型操作(例如 before_save)推送到客户端?是否可以使用 em-websocket 做到这一点?

聊天.rb

0 投票
2 回答
118 浏览

ruby-on-rails - 在 Rails 中使用 em-websocket 构建对讲系统的策略?

也许这是服务器推送系统的一个很好的例子。系统中有很多用户,用户可以互相交谈。可以这样完成:一个用户(通过 websocket)向服务器发送消息,然后服务器将消息转发给另一个用户。关键是找到ws(websocket object)和用户之间的绑定。示例代码如下:

我想弄清楚以下问题:

  1. 对象可以被序列化,ws以便可以存储到磁盘或数据库中?否则我只能将绑定存储到内存中。

  2. em-websocket 和 websocket-rails 有什么区别?

  3. 你推荐哪个 gem 用于 websocket?

0 投票
0 回答
60 浏览

android - WebSocket 创建问题

我正在创建一个 WebSocket 应用程序,它将与 wss url 连接(比如 wss://someurl)。我从这里得到了一些示例代码https://github.com/elabs/mobile-websocket-example这是简单的聊天应用程序。这适用于ws协议。但是当我用我的wss url 替换它时,它会抛出错误作为“拒绝握手”

我也试过高速公路,但似乎不支持 wss 协议。即使我尝试使用不同的示例来连接我的套接字服务器,但没有帮助。

PS:我能够在 iOS 平台上正确地进行套接字连接。我只在android中遇到这个问题。

0 投票
2 回答
469 浏览

ruby-on-rails - 在 Rails 线程中访问变量

我正在为基于 Web 的幻灯片放映构建一个应用程序,其中一个“主”用户可以在幻灯片之间移动,并且每个人的浏览器都会跟随。为此,我使用 websockets 和 Redis 作为全局通道来发送消息。每个连接的客户端都有存储在数组中的信息,@clients. 然后我有一个单独的线程用于订阅 Redis 通道,其中定义了一个“on.message”块,它应该向数组中的每个人发送一条消息@clients,但是该数组在这个块内是空的(在其他任何地方都不是空的)模块)。

几乎遵循这个例子: https ://devcenter.heroku.com/articles/ruby-websockets

相关代码,位于自定义中间件类中:

在新线程内访问时数组是否为@clients空,因为实例变量未跨线程共享?如果是这样,我如何跨线程共享变量?

我也尝试过使用 $clients (全局变量,应该可以跨线程访问),但无济于事。

0 投票
0 回答
475 浏览

ruby-on-rails - 使用 em-websocket 在 Phusion 乘客上支持 WebSockets

我正在尝试支持我的 Rails 应用程序的 WebSocket 接口。我在 Rails 4 上,没有立即迁移到 Rails 5 的计划。我在 nginx 后面使用 Phusion Passenger 5.0.30。

我想使用 em-websocket (+eventmachine) 来构建这种支持。我必须使用哪些乘客配置设置?

使用上述配置和以下用于启动 EM 循环的代码config/initializers/event_machine_init.rb,我无法让 websocket 服务器工作。是否需要额外的配置更改?

编辑:我能够使上述内容与@Priyank Gupta 在问题下的评论中建议的更改一起使用。变化是:

变成:

我还补充说:

0 投票
1 回答
433 浏览

ruby-on-rails - 使用 puma 将 em-websocket 添加到我的应用程序

我有一个使用 Puma 运行的 Ruby 应用程序。现在我想添加一个 websocket 来向连接的客户端广播 REST 请求。我设法通过在我的 config.ru 中添加一些代码来创建一个带有 em-websocket gem 的 websocket 服务器:

现在的问题是,当我运行“rails server -b 0.0.0.0”时,websocket 正在运行,但我的应用程序没有。连接到 localhost:3000 时,我会超时。我该怎么做才能一起运行它们?

后续问题:如何通过 websocket 向连接的客户端广播?我想过向 REST 请求的控制器添加广播方法。那可能吗?

0 投票
1 回答
447 浏览

ruby - 我们如何使用 websockets 加速客户端和服务器之间的传输?

目前,我正在使用 websockets 将图像发送到我的服务器,对其进行处理,然后将其发回。具体来说,我将 Ruby 与 Sinatra 和 sinatra-websocket 一起使用。

在我的开发服务器上,将图像发送到服务器并在不进行处理的情况下检索准确的图像大约需要 2 秒。

在 AWS-EC2 实例上,这大约需要 15 秒。我发送的图像文件约为 500kb。我的上传和下载速度远高于此。

我怎样才能加快这个过程?这是一种来回发送图像的幼稚方式吗?

编辑:要复制我的问题,您可以在 AWS-EC2 免费套餐实例中克隆并运行我的存储库。