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を初めて使用しますが、それを愛しています.使用の明確な例を見たことがありませんが、これは明白に思えるかもしれません-したがって、この質問!