最近、プロジェクトのニーズにより、nodejs の websocket 実装、socket.io を研究しました。これは、nodejs バックグラウンド アプリケーションで Websocket に広く使用されているフレームワークです。
準備
1.ソケット.io をインストールします。コマンド npm installソケット.io を使用します
2. Windows システムの場合、socket.io をインストールするときに vc コードがコンパイルされるため、vc コンパイル環境が必要です
ゲームの基本原則
1. サーバーはクライアントの接続を監視します
2. クライアント接続が成功したら、ページをバインドしてマウス イベントを移動し、イベントを処理して現在の座標をサーバーに送信します
3. サーバーはグローバル座標オブジェクトを保存し、クライアントの一意の番号をキー値として使用します
4. 新しい接続が確立されたら、座標を他のクライアントにブロードキャストします
5. クライアントが切断されると、サーバーは座標情報を削除し、他のクライアントにブロードキャストします
サーバー コードの実装を開始します
scoket.io がサーバー監視を確立する場合、アップグレード プロトコルを処理するために http 接続に依存する必要があるため、http モジュールも必要です。コードは次のとおりです。
var app = http.createServer().listen(9091);
var ws = io.listen(app);
次に、グローバル座標オブジェクトを定義します
クライアントの接続の監視を開始し、ブロードキャスト関数を追加します (実際には、socket.io に付属するブロードキャスト メソッド io.sockets.broadcast.emit を使用できます)。コア コードは次のとおりです。
1. 新しいクライアントは正常に接続し、他のクライアントの座標情報を送信します
2. クライアントが座標情報を更新すると、他のクライアントに通知します
3. クライアントが切断し、他のクライアントに通知します
4. ブロードキャストメッセージのタイプは、座標の変更と座標の削除に分類されます
socket.io はカスタム フレームワークであるため、クライアントはsocket.io.js を参照する必要があります。この js は通常、merge を含む node_modulessocket.ionode_modulessocket.io-clientdist にあります。 2 つのバージョンを圧縮すると、開発中にマージされたバージョンを使用できます。
完全なコードは次のとおりです: