私は過去 1 週間、この特定の問題を探していましたが、この件に関する情報が見つからなかったので (それは時代遅れではありませんでした)、他のことに取り組むことにしました。しかし今、node.jsとsocket.ioを使用してサーバーに接続されているIDを使用して、特定のクライアントに(作成した)データを送信できるようにする必要があります。新しい接続ごとに ID をオブジェクトに格納しています。私が知る必要があるのは、選択した接続 ID に送信する方法です。
次のようなもの: function send(data, client.id) {};
TCP ではなく、http サーバーを使用しています。
これは可能ですか?
編集:
server = http_socket.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(respcont);
client_ip_address = req.header('x-forwarded-for');
});
socket = io.listen(1337); // listen
//=============================================
// Socket event loop
//=============================================
socket.on ('connection', function (client_connect) {
var client_info = new client_connection_info(); // this just holds information
client_info.addNode(client_connect.id, client_connect.remoteAddress, 1); // 1 = trying to connet
var a = client_info.getNode(client_connect.id,null,null).socket_id; // an object holding the information. this function just gets the socket_id
client_connect.socket(a).emit('message', 'hi');
client_connect.on('message', function (data) {
});
client_connect.on ('disconnect', function () {
);
});
解決策:私は実験するだけでそれを理解しました...あなたがしなければならないことは、socket.idではなくSOCKETを保存することを確認し(私が行っていたように)、代わりにそれを使用することです。
client_info.addNode(client_connect.id, client_connect.remoteAddress, client_connect, 1)
var a = client_info.getNode(client_connect.id,null,null,null).socket;
a.emit('message', 'hi');