Node.js 在节点中发布到控制器操作并触发到客户端的websocket连接

Node.js 在节点中发布到控制器操作并触发到客户端的websocket连接,node.js,websocket,faye,socket.io,Node.js,Websocket,Faye,Socket.io,对于node和websockets来说,我是新手,我正在尝试创建一些与典型的游戏或聊天应用程序不同的东西 我需要能够将一些变量发布到操作,执行一些查找,然后使用找到的变量连接到客户端。我真的不知道这是否可能 我遇到的主要问题是,我没有一个典型的js客户端,没有浏览器,nada。我唯一的客户机是python websocket客户机。我有这些连接到服务器好的。。。嗯,他们可以ping服务器-我正在尝试使用Socket.io、Faye和Worlize。我更喜欢使用socket.io 例如,如果我发布

对于node和websockets来说,我是新手,我正在尝试创建一些与典型的游戏或聊天应用程序不同的东西

我需要能够将一些变量发布到操作,执行一些查找,然后使用找到的变量连接到客户端。我真的不知道这是否可能

我遇到的主要问题是,我没有一个典型的js客户端,没有浏览器,nada。我唯一的客户机是python websocket客户机。我有这些连接到服务器好的。。。嗯,他们可以ping服务器-我正在尝试使用Socket.io、Faye和Worlize。我更喜欢使用socket.io

例如,如果我发布以下内容:

 curl -X POST 'http://localhost:8080/timeout?id=1238763876&time=27365716576&bla=stuff' 
在我的app.js中,我有类似的东西(缺少一些位,我的socket.io示例):

这条路线是可行的,但当我发布时,我没有收到任何不好的消息,也没有错误——正如我所说,我是Rails的新节点。我希望这是直截了当的事情


有可能做这样的事吗?这是解决问题的方法还是我应该尝试其他方法。

通过以下方法解决了这个问题:

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);
});

它挂起,因为您没有在
app.post('/timeout')
中发送任何响应。抱歉,我不知道您需要做什么才能让python websocket与节点websocket对话,我只尝试过让服务器websocket与客户端js websocket对话您使用websocket的理由是什么?编写一个更普通的restapi,让python应用程序向节点应用程序发出请求,这会更有意义吗?@plato是的,我知道这很奇怪,但我们不使用浏览器。我们有运行python的嵌入式设备。他们连接到节点服务器已经没有问题,但我们需要向他们发送有效负载。因此需要发送出站请求。这有意义吗?哦,在你的例子中,你有
app.post('timeout'…
,这就是python设备连接到节点服务器的方式吗?或者您是否成功实例化了python websocket并使其与您的节点websocket通信?该示例已精简,不是正在运行的入站示例。更多的证据表明,我们可以发布到操作,执行一些操作并向客户端发送cmd。不是吗w、 我们有2000多台设备运行不同的python客户端,每45秒调用一次我们的应用程序并获取它的作业。遗憾的是,我们需要从他们那里获得真实的tme信息,并且需要立即发送命令。因此尝试WebSocket。我想我可以将作业排队,并在下一次连接时“抓取”它。理想情况下,我需要一个单独的应用程序来发布yo节点它发出了一个命令。谢谢你的帮助
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);
});