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

时间:2015-10-12 22:13:28

标签: ruby websocket

我是websockets的新手,我正在尝试将消息发送到需要订阅请求的现有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

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

1 个答案:

答案 0 :(得分:2)

显然你必须将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了解更多信息(但遗憾的是,还不够)。