У меня есть небольшая демоверсия чата 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