前:Sinatra RocketIOというプラグイン作った、これでWebSocketとCometが使える

クライアントのグループを作る機能を追加した。
例えばチャットルームを分ける時などに使ってください。

クライアント側が接続する時にチャンネル名を指定すると、サーバー側で管理されているチャンネルリストに追加される。

var io = new RocketIO({channel: "チャンネル名"}).connect();
io.on("hoge", function(data){
alert(data);
});


サーバー側からチャンネルを指定して送信する
Sinatra::RocketIO.push :hoge, "ホゲ", :channel => "チャンネル名"

サンプルも更新してあるのでどうぞ


こうすれば、 http://アプリ名/chat/チャットルーム名 でグループ分けできる。

sinatra側でURLからチャットルーム名を取り出してチャンネル名とし、
get '/chat/:channel' do
@channel = params[:channel]
haml :chat
end


viewテンプレートでjavascriptにチャンネル名を渡して
:javascript
var channel = "#{@channel}";


接続時にchannelを指定する。
var io = new RocketIO({channel: channel}).connect();