あなたが欲しいものを言うのはその硬いが一つのことは、あなたがそのsocket
オブジェクトを使用して、私の知る限りbroadcast
が唯一知っているようsocket.emit
を使用する必要があり、単一のユーザーにメッセージを送信するためには確かですあなた自身を除いてみんなに伝えるために使われた。
何それはユーザーを追跡することになると私は通常行うことは、私は次のように持っている:
var userList = [];
io.on('connection', function (socket) {
socket.on('userData', function (userDetails) {
userDetails.socket = socket;
userList[userDetails.id] = userDetails
});
});
Basiclyユーザーが自分のソケットに接続し、ユーザーのためのページが完全にロードされ、それはそのIDを送信するときあなたが望むのであればトークン(またはトークン)を入力して、ユーザーのsocket
をリストにマップするので、そのユーザーに送信したい場合はすぐにもう一度手に入れることができます。
例は次のようになります。
user.id = 33
は、一度ユーザーがソケットは、その後採取しにリストに入れている
当社のサーバーuserData
機能に発するロード
当社のサーバーに接続します行33
これが必要なときは、次のコードを使用してユーザーを取得できますsocket
:
socket = userList[33];
か、我々は、オブジェクトがある場合:私はこれがあなたの役に立てば幸い
socket = userList[user.id];
を。
私はあなたがここで達成しようとしていることにはほとんど従っていません。 'socket.id'は現在のユーザのソケットIDです(waaayyyはありません)。あなたはその問題について詳しく説明できますか? –
@SterlingArcher私のすべてのユーザはsocket.idによって識別されますが、メッセージは送信者ではなく受信者にのみ表示されます。 – Emerceen
私はそれを取得しない...あなたは何が起こりたいですか?あなたが何をしたいのかの入力と出力の例をいくつか追加してください。 –