通过外部网站控制 node.js 应用程序的事件

Controlling node.js application's events via external website

我正在创建我的第一个 nodejs 应用程序。我想问一个从外部网站(服务器)安全控制 node.js 应用程序的想法...

说明: 我在服务器上 运行 steambot...机器人可以 chat/trade/etc.

在我的网站上(示例。com/bot)我采取了行动:与 'this' 人交易 'these' 物品...我使用了简单的 POST 表格,没有身份验证,这很愚蠢,但我正在努力。

问题: 仅通过我的网站告诉机器人做什么的最佳方式是什么(因为 POST 形式你可以在任何你想要的地方复制使用)+ 将信息作为 JSON 对象 f.e 发送.

谢谢! ^^

IMO,你最好的选择是使用像 socket.io.

这样的实时通信库

服务器:

var app = require('http').createServer(handler)
var io = require('socket.io')(app);
io.on('connection', function (socket) {
  socket.on('trade', function (data) {
    // Make your server-side bot do stuff
    bot.doTrade(data.itemId, data.userId);
  });
});

客户:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io('http://localhost');
  $('#tradeBtn').click(function () {
    socket.emit('trade', { itemId: 123, userId: 456 });
  });
</script>

Socket.io 在后台使用多种方式与服务器通信。如有必要,它将首先尝试使用 websockets and if that fails it will fall back on server-sent events or long-polling。 socket.io 的好处是您不必担心那么多;它只是为你照顾它。您可以监听和发出来自客户端和服务器的事件,以促进服务器和客户端页面之间的实时通信。