2015-10-12 110 views
2

我是websockets的新手,并且正在尝试将邮件发送到预计订阅请求的现有websocket服务器。我想:使用em-websocket-client将邮件发送到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'. 

我可以用

ws.stream do |msg| 
    puts "received msg <#{msg}>" 
    end 

更换send_mess线从服务器读取正确流数据至少我知道我正确连接到服务器。我究竟做错了什么?

回答

2

显然,你必须把呼叫send_msg一个WebSocketClientcallback函数内部,就像这样:

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更多(但不幸的是,没有足够的)信息。