クライアントインストール
最新のリリースは現在4.7.5
で、2024年3月にリリースされました。
リリースノートはこちらにあります。
バージョン互換性
サーバーとJSクライアント間の互換性表を示します。
JSクライアントバージョン | Socket.IOサーバーバージョン | |||
---|---|---|---|---|
1.x | 2.x | 3.x | 4.x | |
1.x | はい | いいえ | いいえ | いいえ |
2.x | いいえ | はい | はい1 | はい1 |
3.x | いいえ | いいえ | はい | はい |
4.x | いいえ | いいえ | はい | はい |
[1]allowEIO3: true を使用した場合、はい
関連する移行ガイドを確認してください。
ブラウザサポート
Socket.IOはIE9以降をサポートしています。IE 6/7/8はサポートされなくなりました。
素晴らしいSauce Labsプラットフォームのおかげで、ブラウザの互換性テストを実施しています。
インストール
スタンドアロンビルド
デフォルトでは、Socket.IOサーバーは/socket.io/socket.io.js
にクライアントバンドルを公開します。
io
はグローバル変数として登録されます。
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
</script>
これが不要な場合は(下記の他のオプションを参照)、サーバー側でこの機能を無効にできます。
const { Server } = require("socket.io");
const io = new Server({
serveClient: false
});
CDNから
CDNからクライアントバンドルを含めることもできます。
<script src="https://cdn.socket.io/4.7.5/socket.io.min.js" integrity="sha384-2huaZvOR9iDzHqslqwpR87isEmrfxqyWOF7hr7BY6KG0+hVKLoEXMPUJw3ynWuhO" crossorigin="anonymous"></script>
Socket.IOは他のCDNからも利用できます。
- cdnjs: https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.7.5/socket.io.min.js
- jsDelivr: https://cdn.jsdelivr.net/npm/socket.io-client@4.7.5/dist/socket.io.min.js
- unpkg: https://unpkg.com/socket.io-client@4.7.5/dist/socket.io.min.js
いくつかのバンドルがあります。
名前 | サイズ | 説明 |
---|---|---|
socket.io.js | 34.7 kB gzip | 未縮小バージョン、debug付き |
socket.io.min.js | 14.7 kB min+gzip | 本番バージョン、debugなし |
socket.io.msgpack.min.js | 15.3 kB min+gzip | 本番バージョン、debugなし、msgpackパーサー付き |
debugパッケージは、デバッグ情報をコンソールに出力できます。詳細はこちらを参照してください。
開発中は、socket.io.js
バンドルを使用することをお勧めします。localStorage.debug = 'socket.io-client:socket'
を設定すると、クライアントが受信したイベントがコンソールに出力されます。
本番環境では、デバッグパッケージを除外した最適化されたビルドであるsocket.io.min.js
バンドルを使用してください。
NPMから
Socket.IOクライアントは、webpackやbrowserifyなどのバンドラーと互換性があります。
- NPM
- Yarn
- pnpm
npm install socket.io-client
yarn add socket.io-client
pnpm add socket.io-client
クライアントはNode.jsからも実行できます。
注:上記で述べた理由から、ブラウザバンドルからdebugを除外することを検討してください。webpackを使用している場合は、webpack-remove-debugを使用できます。
TypeScriptユーザーへの注意:型は現在socket.io-client
パッケージに含まれているため、@types/socket.io-client
からの型は不要になり、実際にはエラーの原因となる可能性があります。
Object literal may only specify known properties, and 'extraHeaders' does not exist in type 'ConnectOpts'
その他
依存関係ツリー
クライアントの基本インストールには、9個のパッケージが含まれており、そのうち5個は当社のチームが保守しています。
└─┬ socket.io-client@4.7.2
├── @socket.io/component-emitter@3.1.0
├─┬ debug@4.3.4
│ └── ms@2.1.2
├─┬ engine.io-client@6.5.2
│ ├── @socket.io/component-emitter@3.1.0 deduped
│ ├── debug@4.3.4 deduped
│ ├── engine.io-parser@5.2.1
│ ├─┬ ws@8.11.0
│ │ ├── UNMET OPTIONAL DEPENDENCY bufferutil@^4.0.1
│ │ └── UNMET OPTIONAL DEPENDENCY utf-8-validate@^5.0.2
│ └── xmlhttprequest-ssl@2.0.0
└─┬ socket.io-parser@4.2.4
├── @socket.io/component-emitter@3.1.0 deduped
└── debug@4.3.4 deduped
推移的なバージョン
engine.io-client
パッケージは、低レベル接続(HTTPロングポーリングまたはWebSocket)の管理を担当するエンジンを提供します。こちらも参照してください:動作原理
socket.io-client バージョン | engine.io-client バージョン | ws バージョン1 |
---|---|---|
4.7.x | 6.5.x | 8.11.x |
4.6.x | 6.4.x | 8.11.x |
4.5.x | 6.2.x | 8.2.x |
4.4.x | 6.1.x | 8.2.x |
4.3.x | 6.0.x | 8.2.x |
4.2.x | 5.2.x | 7.4.x |
4.1.x | 5.1.x | 7.4.x |
4.0.x | 5.0.x | 7.4.x |
3.1.x | 4.1.x | 7.4.x |
3.0.x | 4.0.x | 7.4.x |
2.5.x | 3.6.x | 7.4.x |
2.4.x | 3.5.x | 7.4.x |
[1]Node.jsユーザーのみ。ブラウザでは、ネイティブのWebSocket APIが使用されます。