我一直在尋找這個特定的問題,因爲我找不到任何關於這個主題的信息(那個沒有過時),我只是決定在其他事情上工作。但是現在我正處於需要將數據(我構建的)發送到使用其ID並使用node.js和socket.io連接到我的服務器的特定客戶端的程度。我已經將ID存儲在每個新連接的對象中。我需要知道的是將它發送到我選擇的連接ID的方法。Node.JS Socket.IO發送數據包到特定的連接ID
類似於:function send(data,client.id){};
我正在使用http服務器,而不是TCP。
這可能嗎?
編輯:
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的協議,它反過來使用(大部分)以太網,它使用電信號或光信號。 – 2012-04-18 05:20:24
啊謝謝。我只是不想爲TCP版本而不是http版本獲得幫助(如果這有所幫助)。其實,我剛剛纔知道這一點! :) – user1328762 2012-04-18 05:23:29