WebSocketを使ってチャットを作ってみる
WebSocketとは?
Webを閲覧する上でベースとなっているHTTPを拡張したものです。
多分HTTP 1.0では使えないはず。
チャット、SNSに多く見られる通知、オークションなどに使用されるケースが多い。
今回できなかったこと
プロジェクトに導入してみる
1 |
rails new websocket_chat |
次にGemfileにWebSocketのgemを追記
1 |
gem 'websocket-rails' |
1 |
bundle install (--path vendor/bundlers) |
でgemのインストール。しばし待て。
これだけではWebSocketを使用可能な状態にしただけなので
プロジェクトにWebSocketを初期状態で組み込んであげます。
1 |
rails g websocket_rails:install |
すると以下のように必要なプログラムを自動生成してくれます
1 2 3 |
create config/events.rb create config/initializers/websocket_rails.rb append app/assets/javascripts/application.js |
1. config/events.rb
routes.rb と同じようなもの。
2. config/initializers/websocket_rails.rb
websocketの使用ポートなどの環境設定
3. app/assets/javascripts/application.js
既にあるアプリケーションでデフォルトで呼び出すjs。
ここにwebsocketに必要なパスがインポート追記されています。
スタンドアローン設定のために2番を以下のように設定
1 2 |
config.standalone = true config.standalone_port = 3001 |
この状態でwebsocketを起動?出来ます。
bundle exec rake websocket_rails:start_server
確認
ps aux | grep websocket
root 29184 46.7 1.7 323928 67668 ? Rl 17:28 0:01 thin server (0.0.0.0:3001) [websocket_rails]
二行目のような表示が出れば無事動作してます。
しかしその先へは至らず…
gem ‘faye-websocket’, ‘0.10.0’
のように変えてみたのですが、特に変わりなく。。。
WebSocketのサーバーがすぐに終了してしまうので、この辺が後のヒントになると期待して追究していきます