WebSocket 接続を開く
WebSocket サーバーに接続します。
「WebSocket 接続を開く」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全4レッスンが含まれています。
WebSocketとは
WebSocketsは、1つのTCP接続を介してブラウザーとサーバーの間に永続的な全二重接続を提供します。HTTPのリクエストとレスポンスとは異なり、どちら側からでもいつでもメッセージを送信できるため、チャット、ライブフィード、ゲームに適しています。
wsとwssのスキーム
WebSocketのURLでは、ws://(平文)またはwss://(TLSで暗号化)を使います。本番環境では、httpsと同様に、常にwss://を優先してください。
const url = "wss://example.com/socket";接続を作成する
new WebSocket(url)でソケットを構築します。ハンドシェイクはすぐに開始されますが、接続が開くまでは使用できません。
const socket = new WebSocket("wss://example.com/socket");
console.log(socket.url);onopenイベント
ハンドシェイクが完了すると、onopenが一度発生します。その後で初めて安全にデータを送信できます。
socket.onopen = (event) => {
console.log("Connection established");
socket.send("Hello server");
};addEventListenerによる別の方法
on*プロパティの代わりにaddEventListenerを使って、複数のハンドラーを登録することもできます。
socket.addEventListener("open", () => {
console.log("open via listener");
});接続のreadyState
readyStateは接続のライフサイクルを示します。CONNECTING (0)、OPEN (1)、CLOSING (2)、CLOSED (3)があります。
if (socket.readyState === WebSocket.OPEN) {
socket.send("ready!");
}サブプロトコル
2番目の引数でサブプロトコルをネゴシエートします。サーバーが1つを選択し、接続が開いた後にsocket.protocolで確認できます。
const s = new WebSocket("wss://example.com", ["chat", "v2.chat"]);
s.onopen = () => console.log("Using", s.protocol);同一オリジンと混在コンテンツ
httpsで読み込まれたページからは、wss://接続しか開けません。ws://を開くと混在コンテンツとしてブロックされます。URLはそれに合わせて計画してください。
バイナリ型
binaryTypeを"blob"(デフォルト)または"arraybuffer"に設定して、バイナリフレームの受け取り方を指定します。
socket.binaryType = "arraybuffer";最小限のクライアント
ここまでの内容をまとめて、接続を開き、状態を記録し、後片付けを行います。
const socket = new WebSocket("wss://example.com/socket");
socket.onopen = () => console.log("opened");
socket.onclose = () => console.log("closed");接続タイムアウト
WebSocketには組み込みの接続タイムアウトがありません。onopenが制限時間内に発生しなかった場合にソケットを閉じるタイマーを使います。
const socket = new WebSocket(url);
const timer = setTimeout(() => {
if (socket.readyState !== WebSocket.OPEN) socket.close();
}, 5000);
socket.onopen = () => clearTimeout(timer);クイックチェック
接続の基本を確認しましょう。
まとめ:接続を開く
ws/wssスキーム、new WebSocketによるソケットの作成、onopenの処理、readyStateの確認、サブプロトコルのネゴシエーション、接続タイムアウトの追加について学びました。次はメッセージの送受信です。
よくある質問
「WebSocket 接続を開く」レッスンは無料ですか?
はい。「WebSocket 接続を開く」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全4レッスンが含まれています。
「WebSocket 接続を開く」で何を学びますか?
WebSocket サーバーに接続します。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
JavaScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「WebSocket 接続を開く」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJavaScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- WebSocket 接続を開く
- メッセージを送受信する
- 接続のライフサイクルとエラー
- 再接続戦略