agar.ioやgenerals.ioのようなブラウザのゲームには、リンクに関連付けられたプライベートゲームルームを作成できる機能があります。他のプレイヤーは、ブラウザの同じリンクにアクセスして部屋に参加することができます。この機能はどのように機能し、Socket.ioとNode.jsを使ってそれを複製できますか?Node.js/Socket.ioで部屋を生成する
答えて
この一部は、"chat" example on the socket.io siteでカバーされています。この作業には複数の部分があります。
- ユーザーを特定の名前のチャットルームに配置します。
- 別のユーザーが既存のチャットルームを表示し、そのルームに参加することをサーバーに知らせる何かをクリックするためのユーザーインターフェイスを作成します。
- 特定のチャットルームへの参加を希望するユーザーを処理するサーバー要求ハンドラを作成します。
- 参加した部屋でチャットするユーザーインターフェイスを作成します。
- サーバー上でチャットテキストを受信すると、そのチャットルーム内の他のすべてのユーザーにチャットテキストを送信します。
socket.ioでは、サーバーはsocket.io接続を部屋に配置します。 socket.join(roomName)
を呼び出すと、socket
はあなたが部屋に入れたいユーザーのsocket.io接続です。ユーザーが自分の部屋を作成できるようにするには、部屋名を指定してからサーバーにチャットルームを開始するリクエストを送信する必要があります。サーバーはsocket.join(roomName)
を呼び出し、そのチャットルームが自動的に作成されます。他のユーザーにその部屋があることを知らせたい場合は、作成したすべてのメッセージをすべてのユーザーにブロードキャストして、接続されたすべてのユーザーに新しい部屋が作成されたばかりであることを通知する必要があります。これは、通常のようなものをやっているでしょう:
io.emit('newRoom', roomName);
そして、すべてのユーザーがnewRoom
メッセージをリッスンしなければならないであろう。
次に、既存のすべてのルームを表示するためのユーザーインターフェイスがあると仮定すると、クライアント接続がサーバーに送信して、特定のルーム名に参加することに興味を示す別のメッセージを作成する可能性があります。
io.emit('joinMeTo', roomName);
サーバは、各クライアントソケット上joinMeTo
メッセージを聞くと、それを処理します:
socket.on('joinMeTo', function(roomName) {
socket.join(roomName);
});
いくつかの詳細は上記参照チャットのデモです。あなたが特定のステップで立ち往生した場合は、より具体的な質問をすることができます。
ありがとう!私は名前空間を使用しようとしていますが、部屋がうまくいくように思えます。 –
@SimonHuang - ええ、名前空間はチャット型の機能性のためのものではありません。ネームスペースはあらかじめ定義された情報チャンネルに似ており、希望のチャンネルに接続することができます(ケーブルテレビチャンネルのように思っています)。あなたは通常、ルームでのやり方とは違って、名前空間を動的に作成しません。 – jfriend00
- 1. ユニフィケーションネットワークで部屋を作る
- 2. Node.jsとSocket.io部屋を作成
- 3. Ploneで屋根裏部屋を掃除する
- 4. 部屋のパーシスタンスエラー
- 5. SocketIOは部屋
- 6. Java/LibGDX - 部屋から部屋に収集されたアイテムを追跡する
- 7. 部屋で削除(rxjava)
- 8. 部屋を作成するオーバーロードされていないメソッドエラー
- 9. Outlookの[部屋]ボタン
- 10. Androidの部屋のAndroid部屋内の文字列
- 11. 家のレイアウトを部屋ごとにどのようにマップして、ロボットによる部屋のナビゲーションにシンプルな部屋に使用するのですか?
- 12. 部屋数をカウントするフラッドフィルアルゴリズム
- 13. は、サーバー側で部屋のIDを作成し、sockets.io
- 14. Node.js + Socket.io:ある部屋から別の部屋に移動しているプレーヤー
- 15. 屋外で画像のチェックサムを生成する方法は何ですか?
- 16. Node.js&Socket.IO - 部屋の問題
- 17. 部屋のパーシスタンスライブラリ - CREATE VIEW
- 18. 建物の部屋のデータベーススキーム
- 19. 部屋の描画コントロール
- 20. Game Makerのウィンドウと部屋は長方形ですが、部屋はテストでは四角形です
- 21. 部屋の持続性を使用して実行時にクエリを生成する
- 22. 特定のソケットを部屋に残す
- 23. Webアプリケーション用のFirebaseを使用した部屋の作成
- 24. Inform 7に部屋に入る前に部屋のタイプとプレイヤーの状態を確認する
- 25. 私はこのような部屋の居住者を発見するためのコードを持って部屋
- 26. スプリットアドレスストリート名の家屋番号と部屋番号
- 27. Node、Express、Heroku、およびSocket.ioを使用してチャット「部屋」を作成する
- 28. Socket.IO名前で部屋を削除する
- 29. Inform7で利用可能な部屋を表示するには
- 30. 部屋:クエリで変数を使用する
はい、できますし、socket.ioウェブサイトにはその例があります。どちらがとてもシンプルなのですか?なぜここに尋ねる必要がありますか? – Shaharyar