节点和websockets的新手,我正在尝试创建与典型游戏或聊天应用程序不同的东西。
我需要能够将一些变量发布到一个动作,执行一些查找,然后使用找到的变量连接到客户端。我真的不知道这是否可能。
我遇到的主要问题是我没有典型的js客户端,没有浏览器,nada。我唯一的客户是python websocket客户端。我有这些连接到服务器OK ...好吧,他们可以ping服务器 - 我正在尝试使用Socket.io,Faye和Worlize。我更喜欢使用socket.io。
例如,如果我发布此内容:
curl -X POST 'http://localhost:8080/timeout?id=1238763876&time=27365716576&bla=stuff'
在我的app.js中我有类似的东西(有些位丢失,我的socket.io示例):
app.get('/', function (req, res) {
res.sendfile(__dirname + '/public/index.html');
});
app.post('/timeout', function (req, res) {
//Find socket, not implemented yet
console.log('I received a private message by ', from, ' saying ', msg);
io.sockets.on('connection', function (socket) {
io.sockets.emit('this', { will: 'be received by everyone'});
});
});
server.listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
路由有效,但是当我发布时,我没有得到任何错误,也没有错误 - 就像我说的,我是来自Rails的Node的新手。我希望这是直截了当的。
有可能做这样的事吗?这是解决问题的方法还是我应该尝试别的东西。
答案 0 :(得分:2)
用以下方法计算出来:
app.post('/commands/:action/:to', function (req, res) {
target_socket = connections[req.params.to]
if (target_socket) {
console.log(req.query)
io.sockets.socket(target_socket.id).emit('name', 'stuff);
res.send(200);
}
else
res.send(404);
});