1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWSでWebSocket通信の格ゲーを作ろうとしたときにつまずいた点

Last updated at Posted at 2023-03-09

AWSでWebSocket通信の格ゲーを作ろうとしたときにつまずいた点をまとめていきます(備忘録)

API Gatewayの$connectルートに統合したLambda内でpost_to_connectionしようとするとGone Exceptionエラーが出る。

boto3ドキュメントを確認すると、
https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/apigatewaymanagementapi/client/exceptions/GoneException.html

渡されたIDでの接続が見つからないときに投げられるエラーとのこと。
APIGWの$connectに関するドキュメントを確認すると、

”Until execution of the integration associated with the \$connect route is completed, the upgrade request is pending and the actual connection will not be established. If the $connect request fails (e.g., due to AuthN/AuthZ failure or an integration failure), the connection will not be made.”
(出典)https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-route-keys-connect-disconnect.html

とのこと。つまり$connectルートに統合されたアクション(今回の場合はLambda)が完了するまでは接続が確立しないらしい。
接続が確立していないのにconnectionIDが渡されたものだから、有効になっているものと思い込んでpost_to_connectionしてしまっていた、というのが本件の顛末でした。マッチング相手にマッチメイキング完了通知を送りたいのであれば、
一回クライアント経由してsendさせる➤sendmessageルート➤Lambdaでマッチ相手にpostさせようと思う。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?