blob: afd79393da9218b99244b67958a0a87c7b0cd9df (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
---
title: WebSocket API (WebSockets)
slug: Web/API/WebSockets_API
tags:
- API
- Client
- Communication
- Overview
- Server
- Two-Way
- WebSocket
- WebSocket API
- WebSockets
- data
- interactive
translation_of: Web/API/WebSockets_API
---
<p>{{DefaultAPISidebar("Websockets API")}}</p>
<p><strong>WebSocket API</strong> は、ユーザーのブラウザーとサーバー間で対話的な通信セッションを開くことができる先進技術です。この API によって、サーバーにメッセージを送信したり、応答をサーバーにポーリングすることなく、イベント駆動型のレスポンスを受信したりすることができます。</p>
<div class="blockIndicator note">
<p><strong>メモ:</strong> WebSocket のコネクションは機能的にどこか標準 Unix スタイルのソケットに似ていますが、関連はありません。</p>
</div>
<h2 id="Interfaces" name="Interfaces">インターフェイス</h2>
<dl>
<dt><a href="/ja/docs/Web/API/WebSocket"><code>WebSocket</code></a></dt>
<dd>WebSocket サーバに接続し、その接続を通じてデータを送受信するための主要インターフェイス</dd>
<dt><code><a href="/ja/docs/Web/API/CloseEvent">CloseEvent</a></code></dt>
<dd>接続が閉じた時に WebSocket オブジェクトによって送信されるイベントです。</dd>
<dt><a href="/ja/docs/Web/API/MessageEvent"><code>MessageEvent</code></a></dt>
<dd>サーバーからメッセージを受信した時に WebSocket オブジェクトによって送信されるイベント</dd>
</dl>
<h2 id="Guides" name="Guides">ガイド</h2>
<ul>
<li><a href="/ja/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications">WebSocket クライアントアプリケーションを書く</a></li>
<li><a href="/ja/docs/Web/API/WebSockets_API/Writing_WebSocket_servers">WebSocket サーバーを書く</a></li>
<li><a href="/ja/docs/Web/API/WebSockets_API/Writing_WebSocket_server">WebSocket サーバーを C# で書く</a></li>
<li><a href="/ja/docs/Web/API/WebSockets_API/Writing_a_WebSocket_server_in_Java">WebSocket サーバーを Java で書く</a></li>
</ul>
<h2 id="Tools" name="Tools">ツール</h2>
<ul>
<li><a href="https://hacks.mozilla.org/2017/06/introducing-humblenet-a-cross-platform-networking-library-that-works-in-the-browser/">HumbleNet</a>: ブラウザーで動作するクロスプラットフォームのネットワークライブラリです。ブラウザー間の違いを抽象化する WebSocket や WebRTC の C ラッパー、ゲームやその他のアプリで複数ユーザーのネットワーク機能を作成するものから成ります。</li>
<li><a href="https://github.com/uWebSockets/uWebSockets">µWebSockets</a>: <a href="https://isocpp.org/">C++11</a> および <a href="https://nodejs.org">Node.js</a> で書かれた可用性の高い WebSocket サーバーとクライアントの実装です。</li>
<li><a href="https://github.com/ClusterWS/ClusterWS">ClusterWS</a>: <a href="https://nodejs.org">Node.js</a> でスケーラブルな WebSocket アプリケーションを構築する、軽量で高速で強力なフレームワークです。</li>
<li><a href="https://github.com/ClusterWS/cWS">CWS</a>: Node.js のための高速な C++ による WebSocket の実装です (uWebSockets v0.14 のフォーク)</li>
<li><a class="external" href="https://socket.io">Socket.IO</a>: 長いポーリングと WevSocket ベースのサードバーティ―の <a href="https://nodejs.org">Node.js</a> 用転送プロトコルです。</li>
<li><a href="http://socketcluster.io/">SocketCluster</a>: スケーラビリティに焦点を当てた <a href="https://nodejs.org">Node.js</a> 用の pub/sub WebSocket フレームワークです。</li>
<li><a class="link-https" href="https://github.com/Worlize/WebSocket-Node">WebSocket-Node</a>: <a href="https://nodejs.org">Node.js</a> 用の WebSocket サーバー API 実装です。</li>
<li><a href="http://www.totaljs.com">Total.js</a>: <a href="https://www.nodejs.org">Node.js</a> 用の ウェブアプリケーションフレームワーク(使用例: <a href="https://github.com/totaljs/examples/tree/master/websocket">WebSocket chat</a>)</li>
<li><a href="https://www.npmjs.com/package/faye-websocket">Faye</a>: <a href="https://nodejs.org">Node.js</a> 用の <a href="/ja/docs/Web/API/WebSockets_API">WebSocket</a> (双方向接続) と <a href="/ja/docs/Web/API/EventSource/">EventSource</a> (片方向接続) サーバーおよびクライアント</li>
<li><a href="http://signalr.net/">SignalR</a>: SignalR は単一のコードだけで、もし WebSockets が使用可能な場合、基盤として WebSockets を使用し、そうでない場合はほかの代替技術にフォールバックします。</li>
<li><a href="https://caddyserver.com/docs/websocket">Caddy</a>: WebSocket として任意のコマンド (stdin/stdout) を中継することができるウェブサーバーです。</li>
<li><a href="https://github.com/websockets/ws">ws</a>: <a href="https://nodejs.org/">Node.js</a> のための有名な WebSocket クライアント&サーバーライブラリです。</li>
<li><a href="https://github.com/bigstepinc/jsonrpc-bidirectional">jsonrpc-bidirectional</a>: 非同期の RPC で、単一の接続を用いて、サーバー上にエクスポートされた機能と、同時にクライアント上のものがあります (クライアントがサーバーを呼び出すことができ、サーバーもクライアントを呼び出すことができます)。</li>
<li><a href="https://github.com/ninenines/cowboy">cowboy</a>: Cowboy は高速で最新の HTTP サーバーで、 Erlang/OTP のためのものであり、 WebSocket に対応しています。</li>
</ul>
<h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">関連トピック</h2>
<ul>
<li><a href="/ja/docs/Web/Guide/AJAX">AJAX</a></li>
<li><a href="/ja/docs/Web/JavaScript">JavaScript</a></li>
</ul>
<h2 id="Specifications" name="Specifications">仕様書</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">仕様書</th>
<th scope="col">状態</th>
<th scope="col">備考</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName("HTML WHATWG", "web-sockets.html", "WebSocket API")}}</td>
<td>{{Spec2("HTML WHATWG")}}</td>
<td></td>
</tr>
<tr>
<td><a href="https://www.w3.org/TR/websockets/">WebSockets</a></td>
<td><span class="spec-CR">Candidate Recommendation</span></td>
<td></td>
</tr>
<tr>
<td>{{RFC(6455, "The WebSocket Protocol")}}</td>
<td><span class="spec-RFC">IETF RFC</span></td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
<p>{{Compat("api.WebSocket")}}</p>
<h2 id="See_also" name="See_also">関連情報</h2>
<ul>
<li><a class="external" href="http://tools.ietf.org/html/rfc6455">RFC 6455 — The WebSocket Protocol</a></li>
<li><a class="external" href="https://www.w3.org/TR/websockets/">WebSocket API 仕様書</a></li>
<li><a href="/ja/docs/Server-sent_events">Server-Sent イベント</a></li>
</ul>
|