web-dev-qa-db-ja.com

GAEの上でWebSocketサーバーを実行するにはどうすればよいですか?

Google App Engine上でWebSocketサーバーを実行するにはどうすればよいですか?出来ますか?可能でしょうか?

30
Alon Gubkin

それは可能ですか?

番号。

GAEは一般的なインバウンドソケット接続を許可していないため、今はできません。各リクエストも30秒に制限されていますが、これは自動再接続とセッショントラッキングで簡単に回避できます。

それは可能でしょうか?

恐らく。

GoogleはWebSockets標準の最大の(主要な)推進者の1つです。彼らが将来のある時点でGAEにサポートをプッシュしないとしたら、私は驚くでしょう。 WebSocketsドラフト標準はまだ流動的であるため、標準がより堅固になる前に、Googleはサポートの追加をためらう可能性があることに注意してください。

これがGAEでのWebSocketsサポートのバグです: http://code.google.com/p/googleappengine/issues/detail?id=2535

Googleの従業員は、それがロードマップにないことを示しているが、それが有用であることを知っていることに注意してください。発表されていない機能についてグーグルから得るのと同じくらい肯定的な答えです。 WebSocketサポートを優先して、そのバグにあなたの声を追加することをお勧めします。傷つけることはできません。

また、アプリケーションによっては、GAEがまもなくサポートされるChannel APIを検討する場合があります。

EDIT(2015):Channels APIが利用可能になりました(しばらくの間)。

25
kanaka

これらの回答はすべて古くなっています。

Channel APIが 非推奨 になりました。 GooglestronglyFirebase の使用を推奨しています。

Googleが フレキシブル環境 をリリースしたことも注目に値します。

フレキシブル環境では、ソケット接続を簡単に許可するか、Python 3。

14
bscott

現在、正式にサポートされています。

https://cloud.google.com/appengine/docs/python/channel/ を参照してください

[〜#〜] edit [〜#〜]:WebSocketではなくChannel APIがサポートされています。 Channel APIはWebSocketに基づいて構築されていますが、WebSocketに直接アクセスすることはできません。典型的なWebアプリには十分だと思います。

9
Tony Lâmpada

2019年1月9日の時点で正式にベータ版になりましたが、App Engineflexibleのみが対象です。たとえば、 Pythonドキュメント を参照してください。 issue tracker によると、これはどの言語でも機能します。

3
stephanos

カップルの人々が別のサーバーの助けを借りてGAEで動作するWebSocketを取得しています...チェックアウト http://code.google.com/p/typhoonae/wiki/WebSockets

2
Gabe

できません。

GAEはHTTPリクエストを30秒に制限し、WebSocketは長時間接続が開かれることを想定しています。

可能でしょうか?グーグルだけがこれを知っています。

2
Peter Knego

Google App Engineは最近、App Engineフレキシブル環境でのWebsocketのサポートを開始しました。あなたは彼らのブログ投稿を見ることができます。

https://cloud.google.com/blog/products/application-development/introducing-websockets-support-for-app-engine-flexible-environment

1

これもあります: https://cloud.google.com/appengine/docs/go/sockets/ ただし、実験的で非常に低レベルです。

1
Janek Olszak

2019年6月

GAEのWebSocketサポートは、SLA for Flexでサポートされています。

Hi everyone, I'm happy to announce that Websockets support 
for Flex is now Generally Available! We've made no changes since Beta 
but Websockets traffic is now subject to our SLA. 

We've also published documentation for this feature for all App Engine Flex languages.

https://issuetracker.google.com/issues/35886348#comment285 を参照してください

0
Kevin Potgieter