2011-11-10 16 views
1

私は簡単なチャットアプリケーションを書いています。唯一の "フロントエンド"は、単一のhtmlファイル、javascriptファイル、およびいくつかのスタイルシートです。アプリケーションの大部分は、サーバー側のEventMachine WebSocketサーバーです。Ruby:静的HTMLとEventMachine WebSocketサーバーを同じアプリケーションから提供するには?

私はまた、これをHerokuでホストしようとしています。

私は現在、静的ファイルを提供するだけのsinatraアプリケーションと、(別のポート上の)WebSocketサーバーを提供する別個のアプリケーションを持っています。

これらを組み合わせて、ポート80(静的ファイル用)とWebSocketサーバー用の別のポートに応答/応答する1つのアプリケーションを起動できる方法はありますか?

答えて

1

WebSocketサーバーを別のポートで実行させることは、おそらく良い考えではありません。ほとんどのネットワークでポートがブロックされていないため、WebSocketはポート80上で動作します。別のポートを使用すると、ファイアウォールの背後にいるユーザーがアプリケーションを使用できなくなります。

あなたのWebサーバーとは別にイベント・サーバーを実行することが、おそらく最良の方法です。

+0

okですが、両方とも1つのスクリプトで起動する方法はありますか?どちらもポート80で実行していますか?または、フロントエンドはrootドメインから提供され、ws serverはdomain.com/ws-serverから提供されますか? – Andrew

+0

私はそれがHerokuでどのように動作するのかよく分かりませんが、特定のディレクトリや第3レベルのドメインに対する要求を異なるアプリケーションに送るいくつかのルーティングルールを設定できるはずです。たとえば、Apacheを使用してこれを実行します。 – Joshua

0

もう少し実験的にしたい場合は、GoliathはマスターブランチでWebSocketをサポートし、必要なリソースを提供することもできます。 examplesディレクトリを見ると、HTMLページを提供するWebSocketサーバがあります。

関連する問題