0
我正在寻找通过查询字符串发送数据到我的节点,然后让它解析查询并采取相应的行动。socket.emit函数内
var app = require('http').createServer(handler),
io = require('socket.io').listen(app),
url = require('url');
app.listen(61337);
function handler(request, response) {
var requestURL = url.parse(request.url, true);
if(requestURL.query.message) {
var data = JSON.parse(decodeURI(requestURL.query.message));
pushMe(data);
}
/** ... */
}
function pushMe(data) {
io.sockets.socket(data.socketid).emit(data.action, data.value);
}
io.sockets.on('connection', function(socket) {
socket.on('join', function(data) {
/** ... */
});
socket.on('disconnect', function() {
/** ... */
});
});
如何过我的pushMe
函数返回一个错误:类型错误:对象没有方法“发出”
如何从我的功能发出的数据?
是'io.sockets.socket'的功能?你正试图调用它。如果它是一个对象,你需要方括号,像'io.sockets.socket [data.socketid]' – apsillers 2014-09-05 16:14:40
显然它没什么,用方括号我得到“不能读取undefined的属性” – C0NFUS3D 2014-09-05 17:15:58
啊,你用的是socket.io 1.0?他们已经大大改变了API。也许[通过它的socket.id发送消息给客户端](http://stackoverflow.com/questions/8467784/sending-a-message-to-a-client-via-its-socket-id)会有帮助? – apsillers 2014-09-05 17:18:41