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




どうも高妻です。Twitterでもプログラミングのことや暗号通貨のことをつぶやいているのでよかったら覗きにきてください。  

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. 最後にイベントが呼ばれる






コメントを残す

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