2012-04-18 13 views
3

私はem-websocket gemを使ってWebソケットベースのゲームを開発し始めました。私はRuby on Railsを使ったem-websocket gem

$>ルビーserver.rb

を実行すると、2つのブラウザがHTMLファイル(なしのWebサーバー)に直接行くと再生を開始し、その後、私はちょうどオープンしてサーバを起動するアプリケーションをテストする

しかし、今ではWebサーバー、データベーステーブル、その他のRuby on Railsベースの宝石を追加したいと思います。

私のウェブソケットサーバと私のRuby on Railsアプリケーションとの間の通信を実現するには?同じサーバーで実行し、単一のプロセスとして実行する必要がありますか?別々のサーバーで動作し、AJAXを介して通信しますか?

私は事前に

おかげなど、認証とゲームが終了したときにデータベースを更新するような他の機能をサポートする必要があります。

答えて

3

これについて作成した問題があります。この宝石はwebsocket-railsと呼ばれ、Railsアプリケーションの中でWebSocketsを使いこなせるように設計されています。今は安定版です。

この情報が役立ちましたか、不足していると思われる箇所がある場合は教えてください。

3

ここでは取引があります。また、Ruby on Railsフレームワークを使ってwebsocketサーバークライアントを開発したいと思っていました。しかし、Ruby-on-Railsはイベントマシンにはあまり親切ではありません。私はwebsocketクライアントを持っていると苦労しているので、既存のlibからコピー/カット/ペーストすることができ、次の2つの不可解なもので終わります。

EM-のWebSocketサーバー

https://gist.github.com/ffaf2a8046b795d94ba0 

ROR友好のWebSocketクライアント

https://gist.github.com/2416740 

、scriptディレクトリにRubyコードに次のようなスタートをサーバコードを持っています。

# Spawn a new process and run the rake command 
    pid = Process.spawn("ruby", "web_socket_server.rb", 
     "--loglevel=debug", "--logfile=#{Rails.root}/log/websocket.log", 
     :chdir=>"#{Rails.root}/script") #, 
     :out => 'dev/null', :err => 'dev/null' 
    Process.detach pid # Detach the spawned process 

次に、あなたのクライアントは、私は良いRORやさしいEM-のWebSocketクライアントがある望むこの

ws = WebSocketClient.new("ws://127.0.0.1:8099/import") 
Thread.new() do 
    while data = ws.receive() 
    if data =~ /cancel/ 
     ws.send("Cancelling..") 
     exit 
    end 
    end 
end 
ws.close 

のように使用されるが、できなかった罰金1まだすることができます。

サーバー/クライアントが正常に動作したら、認証します。データベースのサポートは、他のレールコードと大きく異なるものであってはなりません。私はあなたの現在のユースケースで役に立つかもしれ宝石に取り組んでいます

https://github.com/igrigorik/em-websocket/issues/21

3

:(私はいくつかの認証/ DBの制限とクライアント側を有することを意味)

関連する問題