close似乎不适用于WebSocket

时间:2015-08-06 14:00:51

标签: javascript ruby websocket eventmachine

我有这个简单的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 个答案:

答案 0 :(得分:0)

我发布此答案,因为发现该问题与“Docker”的使用有关,并且发布了与实际问题相关的新问题。

这个答案应该(希望)正确地将这个问题标记为不再需要注意,以便社区可以专注于未回答的问题。

有关详细信息,请参阅该问题的评论。