私は少しのレッスンを学びました(難しい方法)。私は、Ubuntu AWS EC2クラウドサービス(強力なGPUを使用)で実行される数値計算アプリケーションを作成しました。その進行状況をリアルタイムで監視するためだけにフロントエンドを作成したいと考えていました。リアルタイムデータが必要なため、更新をプッシュするためにWebSocketが必要であることは明らかでした。
それは概念実証から始まり、素晴らしい働きをしました。しかし、それを一般に公開したい場合は、ユーザーセッションを追加する必要があったため、ログイン機能が必要でした。そして、どのように見ても、websocketはどのユーザーを処理するかを知る必要があるため、websocketを使用してユーザーを認証するショートカットを採用しました。当たり前のようで便利でした。
実際には、接続を信頼できるものにするために静かな時間を費やす必要がありました。安価なWebSocketチュートリアルから始めましたが、接続が切断されたときに実装が自動的に再接続できないことがわかりました。socket-ioに切り替えると、すべてが改善されました。Socket-ioは必須です!
とはいえ、正直なところ、いくつかの素晴らしいsocket-io機能を見逃してしまったと思います。Socket-ioにはもっと多くの機能があり、最初の設計でそれを考慮に入れれば、より多くのことを得ることができると私は確信しています。対照的に、古いwebsocketをsocket-ioのwebsocket機能に置き換えただけで、それで終わりです。(部屋なし、チャンネルなし...)再設計により、すべてがより強力になった可能性があります。しかし、そのための時間はありませんでした。これは、次のプロジェクトで覚えておくべきことです。
次に、より多くのデータ(ユーザー履歴、請求書、トランザクションなど)の保存を開始しました。すべてをAWS dynamodbデータベースに格納し、AGAINでは、socket-ioを使用してCRUD操作をフロントエンドからバックエンドに通信しました。私たちはそこで間違った方向に進んだと思います。それは間違いでした。
- それは、Amazonのクラウドサービス(AWS)がRESTfulアプリケーション用の優れたロードバランシング/スケーリングツールを提供していることを知った直後のことです。
- CRUD操作のハンドシェイクを実行するために多くのコードを記述する必要があるという印象を受けました。
- 最近、Paypal統合を実装しました。私たちはなんとかそれを機能させることができました。しかし、繰り返しになりますが、すべてのチュートリアルではRESTful APIを使用しています。ウェブソケットで実装するために、サンプルを書き直したり再考したりする必要がありました。それでもかなり高速に動作しました。しかし、流れに逆らっているように感じます。
以上のことを踏まえて、来週ライブを行います。私たちは時間内にそこに着きました、すべてがうまくいきます。そして、それは高速ですが、スケーリングしますか?