JavaScript は、これを可能にする「生のソケット接続」を作成することを明確に禁止されています。JavaScript は、HTTP、FTP、または (まれに) その他のリソース取得専用プロトコルにのみアクセスできます。
(WebSocket のストリーミング ソケット機能は、最初に HTTP ハンドシェイクを実行し、次に「ほぼ生の」ソケット モードに移行することに基づいていることに注意してください。ただし、これは意図的に任意のサービスへの接続を防止するように設計されています。懸念の 1 つは、たとえば、スパマーは Web ブラウザをハイジャックして SMTP サーバーに接続し、ランダムなユーザーのマシンを踏み台として使用してメールを中継する可能性があります。)
ただし、Firefox の拡張機能は、JSLib システムを介して XPCOM 層 (XUL) にアクセスできます。具体的には、ソケット クラスは次の場所にあります: http://www.mozdev.org/source/browse/jslib/libraries/network/socket.js?annotate=1.6
select
これは、シングルスレッドの C サーバー実装で使用する可能性のある/read
ループに似た、非常に優れた非同期インターフェイスのように見えます。(覚えておいてください、JavaScript はすべてシングルスレッドです…)
または、(今日の世界では) 移植性はわずかに劣りますが、コードを含む Java アプレットをダウンロードできる場合がありますが、次のようになります。
- アプレットは、特別なアクセス許可なしで任意のシステムに接続することを禁じられています。これは、XPI が提供できるかどうか、またはその方法がわかりません。
- 多くの Firefox ユーザーは Java をインストールしていません。Firefox が動作する一部のプラットフォームでは利用できません。