我正在尝试使用nodejs
,express
和socket.io
服务器端:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket){
socket.on('send_stuff', function(stuff){
io.emit('log_stuff',newStuff);
});
});
http.listen(54123, function(){
console.log('listening on *:54123');
});
客户端:
var socket = io.connect('http://example.com:12345');
socket.emit('send_stuff',stuff);
我的问题是如何获取执行socket.emit('send_stuff',stuff)
的客户端(ip,用户代理等)的详细信息?
我想将其传递给newStuff
变量。
socket.on('send_stuff', function(stuff){});
中的 stuff
仅返回客户emit()
发送的值。
任何想法如何做到这一点?
答案 0 :(得分:10)
您可以在connection
事件中获取客户端的IP和用户代理。
io.on('connection', function(socket){
console.log("ip: "+socket.request.connection.remoteAddress);
console.log("user-agent: "+socket.request.headers['user-agent']);
})
文档可以为您提供一些提示http://socket.io/docs/server-api/