kaaaaakun / ft_transcendence

1 stars 0 forks source link

websocketライブラリ決め #93

Open tkuramot opened 4 days ago

tkuramot commented 4 days ago

フロントエンドだったらweb標準のもあるけどそれ含めてどうするか etc.

jizots commented 1 day ago

◆Key point

◆サブジェクトの通信に関連する要求

◆フロント reconnecting-websocket: ReactでWebSocketを扱うで紹介されてた再接続の便利機能っぽいが詳細は未確認

◆バック Django Channels: Djangoを非同期通信に対応させるためのライブラリ。 daphne: ASGIサーバー。APIコンテナでメインプロセスとして動作する。Djangoチームが開発したので、runserver的なワンコマンドで起動できそう。 Redis: メモリでデータを扱う(ボール位置の計算など)場合に、Channelsの(さらに)バックエンドとして機能する。Redisコンテナとして独立したコンテナが必要になりそう。 channels_redis: Django Channels(APIコンテナ)とRedisコンテナを仲介するための、APIコンテナで動作するライブラリ。

◆Ref Socket.IO:Node.js上で機能する、主にバックエンドの非同期通信のライブラリ。フロントと連動して再接続などがChannelsよりも簡単に実装できそう。バックエンドをDjangoで開発する、という要求に違反しそうなので利用しない。 Socket.IO vs Channels: 1, 2 SignalR:.NETフレームワークのリアルタイム通信ライブラリ。APIがDjangoなので利用しない(できない?)。 uvicorn: ASGIサーバー。APIコンテナでメインプロセスとして動作する。高速らしいので、daphneに満足できない場合の選択肢。 WebSocketのRFC:https://tex2e.github.io/rfc-translater/html/rfc6455.html