ruby - 使用 em-websocket-client 向 websocket 服务器发送消息

标签 ruby websocket

我是 websocket 新手,正在尝试将消息发送到需要订阅请求的现有 websocket 服务器。我尝试过:

require 'em-websocket-client'

EM.run do
  ws = EventMachine::WebSocketClient.connect("ws://localhost:3000")
  ws.send_msg "this is a test message"
end

但我明白了

'undefined method `version' for nil:NilClass'. 

通过将 send_mess 行替换为

,我可以从服务器正确读取流数据
  ws.stream do |msg|
    puts "received msg <#{msg}>"
  end

所以至少我知道我正在正确连接到服务器。我做错了什么?

最佳答案

显然,您必须将对 send_msg 的调用放入 WebSocketClient callback 函数中,如下所示:

require 'em-websocket-client'

EM.run do
  ws = EventMachine::WebSocketClient.connect("ws://localhost:3000")
  ws.callback do
      ws.send_msg "this is a test message"
  end
end

参见this了解更多(但不幸的是,还不够)信息。

关于ruby - 使用 em-websocket-client 向 websocket 服务器发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091064/

相关文章:

尝试自动化时,Android 驱动程序抛出错误

ruby - to-block 一元 `&` 的优先级

mysql - Ruby Shoes 和 MySQL : GUI freezes, 我应该使用线程吗?

laravel - Beyondcode Laravel Websockets : failed: WebSocket is closed before the connection is established

ruby - 使用 Ruby 脚本通过 https 登录网站

ruby-on-rails - 如何检查当前语言环境是否等于字符串

node.js - 升级 NodeJS 应用程序

c# - Tweetinvi 接收推文速度慢?备择方案?

c++ - MtGox API 和 websocketpp

ios - nsdictionary 中的 block ?