2015-10-12 95 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更多(但不幸的是,沒有足夠的)信息。