我正在尝试使用基于Celluloid的Websocket客户端(gem 'celluloid-websocket-client')连接远程Websocket。这个客户端对我来说主要的优点是可以使用类方法形式的回调函数,而不是块。
require 'celluloid/websocket/client'
class WSConnection
include Celluloid
def initialize(url)
@ws_client = Celluloid::WebSocket::Client.new url, Celluloid::Actor.current
end
# When WebSocket is opened, register callbacks
def on_open
puts "Websocket connection opened"
end
# When raw WebSocket message is received
def on_message(msg)
puts "Received message: #{msg}"
end
# When WebSocket is closed
def on_close(code, reason)
puts "WebSocket connection closed: #{code.inspect}, #{reason.inspect}"
end
end
m = WSConnection.new('wss://foo.bar')
while true; sleep; end
预期输出为:
"Websocket connection opened"
然而,我根本没有得到任何输出。可能的问题是什么?
我正在使用
gem 'celluloid-websocket-client', '0.0.2'
rails 4.2.1
ruby 2.1.3