WebSocketプロトコルはHTML5の新しいプロトコルです。ブラウザとサーバー間の全二重通信を実現し、クロスドメイン通信を可能にするサーバープッシュ技術の優れた実装です。私たちは Socket.io を使用しています。これは、webSocket インターフェイスを非常にうまくカプセル化し、よりシンプルで柔軟なインターフェイスを提供し、webSocket をサポートしていないブラウザに対する下位互換性も提供します。
プロジェクトで JavaScript のクロスドメインの問題が発生しました。親ページと子ページはクロスドメインで通信する必要があります。どうすればよいですか?
プロジェクトでは、親ページと子ページ間の通信がポイントツーポイントであること、つまり、サーバー側で送信されるメッセージ間の WebSocket 通信を確立する必要があります。親ページのメッセージは子ページでのみ受信され、子ページのメッセージは親ページでのみ受信されます。以下のことが厳密に保証されています。
WebSocket 通信はピアツーピアです。まず、通信セッションが一意であることを保証するために、WebSocket リンクを確立するための URL にタイムスタンプが追加されます。
2 つ目は、サーバー側で親ページと子ページの間で 1 対 1 の WebSocket 対応を保証することです。親ページと子ページの WebSocket が開かれると、サーバーにメッセージを送信して登録し、Sensions 間の対応関係を確立します。これにより、親ページと子ページは、双方によって制約された通信プロトコルを通じて通信できるようになります。
ここでデモを書きます。
var p = document.getElementsByTagName('p ')[0];var io = io.connect('http://127.0.0.1:3001 ');io.on('data ',function(data){alert( '2S 以降のデータを変更');p.innerHTML = data});
サーバー側
var io = require('socket.io ')(server);io.on('connection ',function(client){client.emit('data ', 'hello WebSocket from 3001. ');});
今日はここまでです。同時に、WebSocket にあまり時間をかけたくない場合は、GoEasy Aurora と同様のサードパーティ WebSocket を使用してみてください。
ここでは GoEasy をお勧めします。シンプルで使いやすい www.goeasy.io で、無料ですので試してみてください。
以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。また、VeVb Wulin Network をご支援いただければ幸いです。