web-dev-qa-db-ja.com

非WebクライアントアプリでWebSocketを使用することの欠点は何ですか?

これが私の最初の投稿です。非Webベースのクライアントアプリケーションがサーバーに接続するための通信方法としてWebSocketを使用することに不利な点があるかどうか疑問に思っていますか?

クライアントサーバーアプローチを使用して、ターンベースのゲームを設計することを検討しています。さまざまな種類のクライアントが接続できるようにゲームサーバーを設計したいと思います。一部はWebベースの場合があります(この場合、WebSocketが理想的です)。ただし、ブラウザベースではないものもあります。これらすべてにWebSocketを使用できれば、サーバー側の実装が簡単になると思います。

ただし、WebSocketを使用することにはいくつかの欠点があるはずです。それ以外の場合は、すべてのクライアント/サーバーアプリケーションがそれらを使用します。

(ところで、Javaでサーバーを実装する予定です)

3
Time4Tea

WebSocketはインターネットに接続されたあらゆる種類のクライアントに使用できる非常に便利なプロトコルですが、適切な通信ライブラリの可用性に基づいて、Web以外のクライアントが関係する場合には潜在的な欠点があります。少なくとも一部のクライアントがWebブラウザーに基づいている場合、追加のWebプログラミングの利便性のために、 Socket.IO などのプロトコルを使用することができます。 WebSocket通信の上に。

Javaでサーバーを実装する予定であると述べていますが、非Webクライアントが実装される可能性のあるプラットフォームについては言及していません。プロトコルを決定する前に、クライアントの最も可能性の高いプログラミング環境を定義し、目的のサーバーライブラリで動作するクライアントライブラリの可用性を確認する必要があります。

たとえば、.NETにはMicrosoftが管理する SignalR クライアントライブラリがありますが、Java用のSignalRサーバーはありません。また、Java用のSocket.IOサーバーはありますが、.NET用に存在するクライアントは十分に安定している場合と安定していない場合があります。現在最も頻繁にダウンロードされているNuGetダウンロードクライアントライブラリ SocketIoClientDotNet には免責事項があります。 。 "のGitHubページ。他の環境では、ライブラリの可用性がさらに制限される場合があります。

したがって、答えは不利な点があるかもしれないということですが、サーバーとクライアントのプラットフォームの特定の組み合わせについてのみです。

2
Otto G