close 似乎不适用于 WebSocket
close does not seem to work with 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
当连接关闭时,服务器应该打印 "Closed"。
在浏览器中,当我执行 window.ws.close()
时,服务器没有收到任何消息,但是当我重新加载页面时,它会打印消息。
有没有办法强制客户端说连接已关闭?
我发布这个答案是因为发现这个问题与 'Docker' 的使用有关,并且发布了一个与实际问题相关的新问题。
这个答案应该(希望)正确地将这个问题标记为不再需要关注,以便社区可以关注未回答的问题。
有关详细信息,请参阅问题的评论。
我有这个简单的 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
当连接关闭时,服务器应该打印 "Closed"。
在浏览器中,当我执行 window.ws.close()
时,服务器没有收到任何消息,但是当我重新加载页面时,它会打印消息。
有没有办法强制客户端说连接已关闭?
我发布这个答案是因为发现这个问题与 'Docker' 的使用有关,并且发布了一个与实际问题相关的新问题。
这个答案应该(希望)正确地将这个问题标记为不再需要关注,以便社区可以关注未回答的问题。
有关详细信息,请参阅问题的评论。