4

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

4

0 に答える 0