私は同じブラウザでゲームをプレイするために新しいソケットイベントハンドラを作成しようとしています。同じユーザースクリプトがインストールされているプレイヤー間でデータを送信できます。クライアント側からソケットを追加する
ゲームはsocket.ioを使用し、ここで私はこれまで何をやったかだ:私はこのように、ユーザ側socket.onハンドラを追加しました:
game.socket.on("hello", function() { console.log("hello there") })
私は、接続された2人のプレーヤーでこれをしませんでした私はこれを行う際に同じゲームに、しかし:EMITを送っ
game.socket.emit("hello")
唯一のプレーヤーはhello there
はログアウトします。
私の推測によれば、サーバー側には、名前がhello
のイベントを発行するハンドラはありません。サーバーサイドのコードにアクセスすることなく追加できますか、それを回避して他のプレイヤーに直接データを送信する方法はありますか?
コードの文脈を大きくする必要があります。 'game.socket.emit(" hello ")'は1つのソケットエンドポイントにのみメッセージを送ります。エンドポイントがサーバーで、サーバーがそのメッセージを他のユーザーに送信することを期待している場合は、サーバーにコードを追加してそのメッセージを受信し、受信時に他のプレーヤーに送信する必要があります。 socket.ioはクライアントとサーバーの接続です。あるクライアントからsocket.io(またはwebsocket)内の別のクライアントに直接送信することはできません。代わりに、サーバーに送信して、サーバーにそれを他のクライアントに転送させる必要があります。 – jfriend00
答えをありがとう、それは私が考えたものだ – MarksCode