我是 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/