close, похоже, не работает с WebSocket
У меня есть такой простой код javascript:
window.ws = new WebSocket('ws://127.0.0.1:8000/');
ws.onopen = function() {
ws.send('hello');
}
И сервер в Ruby вот так:
require 'em-websocket'
class Websocket
def run
EventMachine.run do
EM::WebSocket.start(host: '0.0.0.0', port: '8000') do |ws|
ws.onopen do |handshake|
puts "Connected"
end
ws.onclose do
puts "Closed"
end
ws.onmessage do |msg|
p msg
end
end
end
end
end
Когда соединение закрыто, сервер должен напечатать "закрыто".
В браузере, когда я делаю window.ws.close()
, сервер ничего не получает, но когда я перезагружаю страницу, он печатает сообщение.
1 ответ:
Я публикую этот ответ, так как было обнаружено, что проблема связана с использованием "Docker", и был опубликован новый вопрос, относящийся к фактической проблеме.
Этот ответ должен (будем надеяться) правильно отметить, что этот вопрос больше не нуждается во внимании, чтобы сообщество могло сосредоточиться на оставшихся без ответа вопросах.
Смотрите комментарии к вопросу для получения более подробной информации.