6

WebSocket クライアントからの着信接続を受け入れる TCP Socket サーバーを実行することは可能ですか? 私は TCP ソケット サーバーを持っており、これをブラウザーでテストできるようにしたいと考えています。これは可能ですか?

4

2 に答える 2

9

絶対!それがwebsockifyの目的です。

もちろん、WebSocket クライアント アプリケーションは TCP サーバーのプロトコルを実装できる必要があります。たとえば、noVNCは、RFB プロトコルを実装するブラウザー VNC クライアントであり、websockify を使用することで、通常の TCP ベースの VNC サーバーに接続できます。

免責事項: websockifynoVNCの両方を作成しました

于 2013-03-01T16:47:52.590 に答える
6

TCP と WebSocket は同じプロトコルまたはフレーミングではないため、やみくもに接続しても機能しません。まあ...技術的には、websocketはssl(オプションで)に階層化されたhttpのアップグレードであり、さらにtcpに階層化されています。

TCP はバイト ストリームと考えることができますが、WebSocket はセット フレームです。

WebSocket フレームは、次のいずれかになります。

  • TEXT - 1 つの UTF8 メッセージを構成する 1 つ以上のフレームで構成されます
  • BINARY - バイト配列メッセージを構成する 1 つ以上のフレームで構成されます
  • CONTINUATION - TEXT および BINARY で 2 つ以上のフレームをつなぎ合わせるために使用されます。
  • PING - 明らか
  • PONG - 明らか
  • CLOSE - プロトコルのクローズ/切断を要求します。

つまり、Websocketに TCP を接続するには、 Websocket プロトコル フレーミングを実装する必要があります。そして、そのポイントに到達するには、基本的なHTTP UPGRADEを実装する必要があります。

于 2013-03-01T15:14:18.450 に答える