私が取り組んでいるWebSocketチャットデモがあります(このコードに基づいています)。ただし、クライアントとサーバー間の接続が閉じられたときに機能していないように見える部分は、ユーザーが「チャットルームを離れた」ことをすべてのサブスクライバーに通知したいと思います。クライアント接続が切断されたときにサーバーに通知/onclose関数を実行すると思いましたが、WebSocketの動作とは異なる場合があります。
これが私の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