dyno cycleに対するsocket.ioの対処って典型的なものがないのかな。
Conversation
Notices
-
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Thursday, 25-Oct-2018 13:08:46 JST
艮 鮟鱇
-
zunda ? nはおまけ :green_dango: (zundan@mastodon.zunda.ninja@mastodon.zunda.ninja)'s status on Thursday, 25-Oct-2018 13:41:03 JST
zunda ? nはおまけ :green_dango:
@anqou 一般論になっちゃいますけどアプリ側はSIGTERMをもらってから、現在進行中のリクエストに答えて接続を切って止まるまで30秒の猶予があります https://devcenter.heroku.com/articles/error-codes#r12-exit-timeout クライアント側は接続を切られちゃったらしばらく待ってつなぎ直すしかなさそうですー。
-
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Thursday, 25-Oct-2018 14:45:00 JST
艮 鮟鱇
@zundan なるほど……となると、クライアントごとにIDをふったうえで、再接続してきたときにIDをもとに判別できるように、データベースで管理する感じになるんですかね。
-
zunda ? nはおまけ :green_dango: (zundan@mastodon.zunda.ninja@mastodon.zunda.ninja)'s status on Thursday, 25-Oct-2018 15:56:23 JST
zunda ? nはおまけ :green_dango:
@anqou あまり詳しくなくて申し訳ないのですが、そんな感じだと思います。たぶん、まずブラウザから接続しにいったときにクッキーでトークンを持たせて、それをWebSocketでつなぎにいくときにクッキーとかクエリストリングで渡す感じなのかな、と想像してます。Mastodonだと/ap1/v1/streaming/?stream=user&access_token=…につなぎに行って感じなので。トークンの管理はデータベースでもRedisみたいなのでも良さそう。
-
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Thursday, 25-Oct-2018 16:43:11 JST
艮 鮟鱇
@zundan やっぱりそうなりますよね……。やってみます。ありがとうございます。
-