我正在处理一个小的 WebSocket 聊天演示(基于此代码)。但是,似乎不起作用的部分是当客户端和服务器之间的连接关闭时,我想通知所有订阅者用户已“离开聊天室”。我认为当客户端连接断开时服务器会被通知/运行 onclose 函数,但也许这不是 WebSockets 的工作方式。
这是我的 EventMachine 代码:
ws.onclose do
puts "Connection closed"
ws.send ({:type => 'status', :message => "#{@subscribers[subscriber_id]} has left the chatroom"}.to_json)
@main_channel.unsubscribe(subscriber_id)
end