6

WebSocket を使用して、irc、icq、sip などのサービスに接続したいと考えています。JavaScript でこれらのプロトコルの何らかの実装があると仮定しますか? それは可能ですか?通常のソケットと比較して WebSocket の制限を理解していないようです。

4

5 に答える 5

8

絶対!

注意点は、ブラウザの WebSocket トランスポート プロトコルと既存のサービスの未加工の TCP ソケットとの間をブリッジする何かが必要だということです。たとえば、websockifyのようなもの(免責事項: websockify を作成しました)。もう 1 つの注意点は、websockify は TCP ターゲットのみをサポートすることです (WebSocket は現在 TCP のみであるため、UDP ターゲットをサポートすることはとにかく少し奇妙です)。

websockify プロジェクトには、IRC および telnet と通信するための 2 つの概念実証 HTML/Javascript ページが実際に含まれています。websockify を利用していくつかの一般的な TCP プロトコル用の HTML/Javascript クライアントを構築することに興味がある場合は、例としてそれらを websockify リポジトリにプルすることもできます (適切にコーディングされ、オープン ソース ライセンスの下にあると仮定します)。

websockify に代わる方法は、websocket サーバー側のサポートを、通信したいサーバーに直接統合することです。サポートを追加することはそれほど難しいことではありません。WebSocket は非常に単純なフレーミングを備えており、ハンドシェイクは HTTP サーバーと互換性がありますが、実際にははるかに制限され単純であり、完全な HTTP パーサーを必要としません。たとえば、libvncserver 0.9.9 は、通常の VNC 接続と WebSocket を介した VNC 接続の両方をサポートするようになりました。これにより、websockify を必要とせずに、noVNC (これも作成しました) が libvncserver ベースの VNC サーバーに直接接続できるようになります。

于 2012-06-22T22:38:05.120 に答える
8

いいえ、できません。少なくとも直接はできません。

WebSocket は、ブラウザーと WebSocket サーバー間のリアルタイム メッセージングを可能にしますが、これらのメッセージをカプセル化するための独自のレイヤー 7 プロトコルを備えています。

既存のプロトコルを実装できる純粋な TCP (または UDP) ソケットへのアクセスは提供しません。

于 2012-06-22T21:02:46.787 に答える
1

m_websocketsInspirecd には、接続を許可するためにインストールできる という非公式のモジュールがあります。モジュールがインストールされてセットアップされたサーバーでは、webbsockets 経由でサーバーに接続できます。

https://github.com/barosl/inspirecd-m_websocket

于 2015-01-02T21:41:26.990 に答える
0

@kanaka の websockify を拡張すると、このプロジェクトはそれを行うようです:

websocket と websockify で作成された HTML5 IRC クライアント。

[Has] autojoin、privmsg channel、topic、join、userlist、part、nick のサポート。

https://github.com/confact/dunirc

于 2015-03-08T23:28:25.103 に答える
-1

いいえ、websocket ではできませんが、http ではできます。

Samy Kamkar はこれについてブラック ハット トークを行いました。

于 2014-04-21T14:27:12.363 に答える