STERFIELD

2016/10/05

WebSocketを使ってチャットを作ってみる

WebSocketを使ってチャットを作ってみる

WebSocketとは?

サーバーからクライアント間の双方向通信を可能にし、大きな特徴としてクライアントから情報をリクエストしなくてもサーバーからリアルタイムな情報をクライアント側が受取待ち出来ることでしょう。

Webを閲覧する上でベースとなっているHTTPを拡張したものです。
多分HTTP 1.0では使えないはず。

チャット、SNSに多く見られる通知、オークションなどに使用されるケースが多い。

今回できなかったこと

ネックになるチャットメッセージの表示が出来ず、ただの環境準備の備忘録となってしまいました。

プロジェクトに導入してみる

まずはプロジェクトを作成

次にGemfileにWebSocketのgemを追記

でgemのインストール。しばし待て。

これだけではWebSocketを使用可能な状態にしただけなので
プロジェクトにWebSocketを初期状態で組み込んであげます。

すると以下のように必要なプログラムを自動生成してくれます

1. config/events.rb
routes.rb と同じようなもの。
2. config/initializers/websocket_rails.rb
websocketの使用ポートなどの環境設定
3. app/assets/javascripts/application.js
既にあるアプリケーションでデフォルトで呼び出すjs。
ここにwebsocketに必要なパスがインポート追記されています。

スタンドアローン設定のために2番を以下のように設定

この状態で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]

二行目のような表示が出れば無事動作してます。

しかしその先へは至らず…

どうやらwebsocketに依存性のあるgemのバージョンによって挙動が変わるそうで

gem ‘faye-websocket’, ‘0.10.0’
のように変えてみたのですが、特に変わりなく。。。

WebSocketのサーバーがすぐに終了してしまうので、この辺が後のヒントになると期待して追究していきます

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい