我刚刚开始使用 Sinatra,并希望能够测试一个正在检查 websocket 的方法,如下面的代码片段所示:
require 'sinatra'
require 'sinatra-websocket'
set :server, 'thin'
set :sockets, []
get '/' do
if !request.websocket?
erb :index
else
request.websocket do |ws|
ws.onopen do
ws.send("Hello World!")
settings.sockets << ws
end
ws.onmessage do |msg|
EM.next_tick { settings.sockets.each{|s| s.send(msg) } }
end
ws.onclose do
warn("websocket closed")
settings.sockets.delete(ws)
end
end
end
end
(从这个问题中提取的代码,但几乎与我的用法相同)
我正在使用 MiniTest 进行测试,并希望有一种直接的方法可以使用模拟 websocket 传递请求,从而超越 if !request.websocket? 有条件的。
一个带有最简单示例的片段会很棒,但任何指针都非常感谢!
免责声明:我是 Ruby 的新手,虽然我很喜欢它,虽然我没有看到任何明确的使用示例,但这似乎很明显——因此这个问题!