지난 주 동안이 특정 문제를 검색해 봤는데 주제에 대한 정보를 찾을 수 없어서 (구식이 아니 었습니다) 방금 결정했습니다. 다른 일에 종사하십시오. 그러나 이제는 node.js와 socket.io를 사용하여 서버에 연결된 ID를 사용하여 특정 클라이언트에 데이터 (구성한 데이터)를 보낼 수 있어야합니다. 각 새 연결에 대해 객체에 이미 ID를 저장합니다. 내가 알아야 할 것은 내가 선택한 연결 ID로 그것을 보내는 방법입니다.Node.JS Socket.IO 특정 연결 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을 만들어 사용하는 것입니다 ... 단지 실험하여 알아 냈어 그 대신에. 이 작업을 수행해야하는 경우
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');
HTTP는 TCP 연결을 통해 작동하는 프로토콜입니다. TCP는 IP를 사용하는 프로토콜로, 주로 전기 또는 광 신호를 사용하는 이더넷을 사용합니다. –
아 감사합니다. 나는 http 버전보다는 TCP 버전에 대한 도움을 받고 싶지 않았다. 실제로, 나는 방금 전에 그것에 대해 알았다! :) – user1328762