You are looking at the HTML representation of the XML format.
HTML is good for debugging, but is unsuitable for application use.
Specify the format parameter to change the output format.
To see the non HTML representation of the XML format, set format=xml.
See the complete documentation, or API help for more information.
<?xml version="1.0"?>
<api>
  <query-continue>
    <allpages gapcontinue="jade" />
  </query-continue>
  <query>
    <pages>
      <page pageid="45" ns="0" title="WebSocket">
        <revisions>
          <rev contentformat="text/x-wiki" contentmodel="wikitext" xml:space="preserve">[[WebSocket]]とは、ブラウザとサーバの間で双方向通信を実現する仕組みです。AjaxやCometの課題を解決するために作られました。

'''読み方'''
;[[WebSocket]]:うぇぶ そけっと
__TOC__

== 概要 ==
[[WebSocket]]では、サーバとクライアント(主にブラウザ)の間で、永続的なソケットを利用し、双方向通信を実現します。一度、接続してしまえば、サーバからのプッシュ通知も可能となります。

== AjaxとCometの課題 ==
Ajaxは、非同期通信のためにXMLHttpRequestオブジェクトを使用しています。通信の都度HTTPリクエストが発生し、通信コストが高いです。この方式は、クライアントからサーバに接続するモデルであるため、サーバ側からデータをプッシュできません。

Comet では、サーバからクライアントに任意のタイミングでレスポンスを返すため、HTTPロングポーリングと呼ばれる、HTTPの通信接続を確立しておき、レスポンスするまで接続を維持する方式です。この通信もまた、都度、再接続が必要となり、接続処理に無駄があります。

== WebSocketのサーバ ==
[[WebSocket]]を使用したアプリケーションの開発には、[[WebSocket]]に対応するサーバが必要になります。たとえば、以下のソフトウェアを利用して、[[WebSocket]]を利用できます。
* [[node.js]]
* Jetty
* PHP Websocket Class

== WebSocketのAPI ==
{|class=&quot;wikitable&quot;
	|+ WebSocket API
		! メンバ
		! 説明
		|-
		| WebSocket(url,protocol)
		| WebSocketのコンストラクタ。
		|-
		| send(data)
		| メッセージを送信する
		|-
		| close()
		| WebSocketの接続を切断する。
		|-
		| onopen
		| WebSocket の接続が確立したときに呼び出されるハンドラ
		|-
		| onclose
		| WebSocket の接続が切断したときに呼び出されるハンドラ
		|-
		| onmessage
		| WebSocket でメッセージを受信したときに呼び出されるハンドラ
		|-
		| onerror
		| WebSocket でエラーがおきたときに呼び出されるハンドラ
		|}

== URL ==
{|class=&quot;wikitable&quot;
	|+ WebSocket URL
		! プロトコル
		! 説明
		|-
		| ws://
		| WebSocketでの80ポートで通信。通信は、平文でおくられる。
		|-
		| wss://
		| WebSocketでの443ポートで通信。通信は、暗号化される。
		|}

== 開発に使うもの ==
* [[node.js]]で[[WebSocket]]サーバを開発する場合
** [[socket.io]]
* [[WebSocket]]サーバのデバッグ・動作確認
** [[wscat]]
** [[iocat]]

== 関連項目 ==
{{node websocket}}
&lt;!-- vim: filetype=mediawiki
--&gt;</rev>
        </revisions>
      </page>
      <page pageid="46" ns="0" title="iocat">
        <revisions>
          <rev contentformat="text/x-wiki" contentmodel="wikitext" xml:space="preserve">[[iocat]]とは、[[socket.io]]をサポートする [[WebSocket]] netcat です。

'''読み方'''
;[[iocat]]:あいおーきゃっと
__TOC__

== 概要 ==
[[iocat]]は、socket.io と [[WebSocket]] の netcat ライクなユーティリティです。
netcat(ncat,nc)は、ネットワークソフトウェアで、ネットワークのクライアントやサーバとして使えるツールです。

[[WebSocket]]部分は、wsパッケージで提供される [[wscat]]でも良いです。
=== コマンドラインオプション ===
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
  Usage: iocat [options] URL

  Options:

    -h, --help               output usage information
    -V, --version            output the version number
    -v, --verbose            verbose
    -l, --listen             Start in listen mode, creating a server
    -p, --local-port &lt;port&gt;  Specify local port for remote conntects
    --socketio               Use socket.io
    -k, --keep-listen        Keep inbound sockets open for multiple connects
&lt;/syntaxhighlight&gt;

=== WebScoketサーバとして起動する ===
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
$ iocat -l -p 8080
&lt;/syntaxhighlight&gt;
=== WebScoketクライアントとして起動する ===
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
$ iocat -p 8080 ws://127.0.0.1:8080
&lt;/syntaxhighlight&gt;

=== デモ ===
表示がごちゃ混ぜになっていて、わかりにくいですが、[[iocat]]をサーバとクライアントとして、起動した例です。

サーバ
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
$ iocat -l -p 8080
&gt; New connection
hello
&gt; I'm server
&lt;/syntaxhighlight&gt;
クライアント
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
$ iocat ws://127.0.0.1:8080
&gt; Connection to ws://127.0.0.1:8080 succeeded!
hello
&gt; I'm server
&lt;/syntaxhighlight&gt;
== 関連項目 ==
* [[WebSocket]]
* [[wscat]]
&lt;!-- vim: filetype=mediawiki
--&gt;</rev>
        </revisions>
      </page>
    </pages>
  </query>
</api>