有没有办法通过PHP页面修改node.js代码?

时间:2016-11-22 12:09:41

标签: php mysql node.js

所以我在node.js中使用http://socket.io并开发聊天以了解有关node.js的更多信息

当用户打开页面时,我使用node.js与MySQL通信。

但出于带宽原因,我无法继续使用MySQL,所以我在那里存储了一些变量。例如,我不希望用户登录两次,因此我会将所有用户的套接字ID存储在JSON中。如果该用户已经存在套接字ID(在node.js中),那么我将断开套接字。

这很好用,但是我想说我想断开用户的连接,我将如何用PHP做到这一点?

我考虑的一个选项是,我可能会使用所需的更改更新数据库中的表,然后node.js每隔60秒检查一次该表并执行它需要做的事情,然后在更改后更新表完成了。

这是最好的选择还是我应该尝试使用PHP来实现这一目标?显然PHP会更直接 - 但这对我来说并不是太过关注。

2 个答案:

答案 0 :(得分:1)

这很简单:

  1. 确保您的node.js代码支持HTTP请求而不仅仅是套接字。

  2. 添加路线以执行任何操作。例如,你可以处理/api/disconnect/:userId,它可以做你需要的任何事情。

  3. 在您的PHP代码中,使用file_get_contents或cURL系列调用来调用相关的网址。

  4. 当然,你想确保你有一些不错的安全性,这样只有你的PHP脚本可以称你为webservices,否则你就会打开各种攻击的大门。在短期内,这可以通过仅监听127.0.0.1并使用该地址进行沟通来完成。

    请注意,问题的标题实际上与其文字不匹配。您实际上并没有修改node.js代码,而只是修改它操作的数据。

答案 1 :(得分:0)

不确定我是否遵循您的描述,但有一点突出的是您正在考虑使用代码修改代码。唐'吨。自修改代码(无论它是否分散在系统的不同组件中)都是非常坏主意。

  

如果该用户已存在套接字ID,那么我将断开套接字。

存在于哪里?大概在node.js。

虽然您可以使用数据库来保存数据,但我会尝试将数据从PHP脚本直接注入node.js。这消除了轮询步骤。关于如何在重新启动后将信息重新填充到node.js中存在一个问题,但这取决于比您提供的信息更多的信息。