引き続き、engine.io のクライアント実装を書いてみる。
https://gist.github.com/neguse/05a497f651c99455caa1410282caf049
実際に書いてみると理解が間違っていたところがあった。
XHR の場合、Client→Server のデータ送信は Client からの POST リクエストに載っているのだけど、この POST のレスポンスに Server→Client のデータ送信も(バッファに溜まっている場合)含まれるものだと思っていた。これは違っていて実際には POST レスポンスには”ok”という文字だけが入っていて、Server→Client のデータ送信は Client からの GET リクエストのレスポンスにのみ含まれる。
タイムアウト周りとか websocket への upgrade とかいろいろ足りてないところはありそうな気がするけど、いったん動きそうな気持ちになってきたので引き続き socket.io を調べて実装していく。