Devsway

日々の記録とか記憶とか。


いきさつ


今の案件でチャットを作ることになりそうなので調べてみた。


WebSocketとは?


双方向通信専用プロトコルのこと、及びそれによる双方向通信のこと全体を指すことも。



なにができるの?


チャットとか。ああいうのです。


Ajax + http通信 じゃだめなん?


最初はみんなこれを考えると思います。

もちろん、こういうやり方もあります。(Ajaxで頻繁に問い合わせる)

しかしやはりこのやり方はずっとサーバーに頻繁にアクセスするため

サーバーに負荷がかかるという弱点を持ちます。

これをいいかんじにしたくて作られたのがWebSocketという認識で大丈夫だと思います。


ちなみにこのような頻繁に通信して双方向のやり取りを実現するやり方を


ポーリングといいます。



ざっくりどういう感じで通信するの?


クライアントとサーバーの間でコネクションを確立して、その中で双方向にゴニョゴニョします。

順序としては

①まずクライアントがサーバーにハンドシェイク要求を送ります。

②サーバーがハンドシェイク応答を返します。


これでコネクションが確立されたので、実際の双方向通信がスタートできます。


どこから始めればいい?


https://developer.mozilla.org/en-US/docs/Web/API/WebSocket



なんかいい感じのライブラリとかないの?


すこし調べてみましたが、socket.ioあたりが一番有名みたいです。

https://github.com/socketio/socket.io


参考


https://ja.wikipedia.org/wiki/WebSockethttps://ja.wikipedia.org/wiki/WebSocket




カテゴリー

オレオレIT用語辞典