Socket.IOの接続後からイベントが呼ばれるまでの処理順




Socket.IOの処理順とは?

今回はSocke.IOでwebsocketが接続完了してからイベントが呼ばれるまでの処理の間でどういったものがどんな順番で実行されているかについて説明します。

Socket.IOやリアルタイム通信と聞くと難しそうといったイメージが湧く方もいると思いますが、最近はライブラリの使い方をしっかり把握しているだけで十分扱えるのでこの機会に是非マスターしてください。

Socket.IOの処理順を理解しておくとユーザーの認証処理だったり、アクセスログの処理をどこに組み込むのがベストなのか分かるので是非参考にしてみてください。

*weboskcetの接続が確立するまでについては今回書きません。

1.websocket接続時

まずはじめにwebsocketの接続が確立すると呼ばれるのがnamespace: ’/’に対する処理です。Socket.IOではnamespaceやイベントに対して毎回呼ばれる処理をミドルウェアと説明しているので以降はミドルウェアと書きます。

Socket.IOは’/’以外のnamespaceに対して接続要求があったとしてもまずはじめに’/’に対して接続してから他のnamespaceに接続します。

従って、cookie-parserexpress-sessionを使用したユーザーの認証処理は’/’のミドルウェアに対して実装するのがセオリーです。

‘/’に対するミドルウェアが処理された後は’/’のon(‘connect’)イベントが呼ばれます。この処理の中では基本的にsocketに対するミドルウェアやイベントを実装します。

2.イベント発火時

クライアントから実際にイベントが呼ばれたときは接続時と同様に先にsocketに対するミドルウェアの処理が実行されます。ミドルウェアの処理が全て完了したらイベントが処理されるといった処理順番になっています。

まとめ

  1. namespaceに対するミドルウェアが処理される。その中でも’/’に対する処理が一番最初
  2. connectイベントが呼ばれる。
  3. クライアントからイベントが呼ばれると接続時と同様に先にミドルウェアが処理される
  4. 最後にイベントが呼ばれる

おすすめ書籍

基礎から応用までサンプルコードを使って解説しており、Node.jsが初めての人でも読める技術書となっています。上級者向けにはExpressフレームワークを使った実用的な開発手法の解説もありこれからアプリケーションを開発する人の参考になると思います。現状では書き方が古くなっていますが、Node.jsの初心者から上級者で学ぶことの多い書籍です。

 

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です