我有一个 node.js 服务器,它为客户端浏览器提供交互式 HTML 页面。所以在这种情况下,客户端前端页面不是从 Apache 服务器提供的,而是从 node.js 服务器提供的。
当用户执行某些操作(即创建墙帖或评论)时,我正在考虑使用一种可能的操作流程来管理它们,但我不知道哪个更好(就性能而言,大量的可扩展性用户数量和易于实施)。所以这些是我的选择:
选项1:
- Socket.io 会将消息详细信息发送到节点服务器(监听特定端口)。消息将使用 JSON 编码。
- 节点接收消息。
- Node 将直接与 mysql 数据库通信。在此步骤执行输入清理。
- Node 将详细信息广播给在同一 socket.io 房间内订阅的其他用户。
选项 2:
- Socket.io 会将详细信息发送到节点服务器。消息将使用 JSON 编码。
- 节点接收消息。
- Node 使用 HTTP POST 调用 PHP。然后 PHP 控制器将处理 HTTP POST 消息并将所有相应的详细信息保存到 mysql 数据库。在此步骤将执行输入清理。
- PHP 将通过 redis 通知 node.js 服务器,假设使用名为“mysqldb”的通道。
- 节点将订阅“mysqldb”频道,然后将相应的详细信息广播给同一个socket.io房间内订阅的用户。
你能告诉我上述两种方法的优缺点吗?有没有更好的方法?