我正在完成一个 JQuery 插件,我需要在插件处于活动状态时收集一些活动的使用数据。这些数据需要远程存储在我的服务器上。
但是,我正在尝试找到执行此操作的最佳方法。我猜这与收集网络分析数据的方式类似。我现在看到两个选项,我概述了以下基本步骤。
A. AJAX - 使用这种方法:
- 我使用 JQuery 在我的 JQuery 插件中设置 Ajax 请求以将数据发布到服务器
- 我设置此服务器以捕获已发布的数据,然后使用 PHP 插入数据库表
B. SOCKETS - 使用这种方法:
- 我注册了 PubNub 之类的服务
- 我在我的 JQuery 插件中使用 PubNub Javascript SDK 将消息“发布”到给定的“频道”
- 我设置了一个专用服务器或云服务器,并使用SSH登录,安装Web服务器+数据库+ PHP,并确保它工作正常
- 我创建了我的 PHP 脚本(使用 PubNub PHP SDK)来“订阅”我的插件将发布消息的 pubnub“频道”,然后设置机制以从消息中捕获数据并插入到数据库表中
- 我设置了 supervisord 来守护我的 php 脚本,然后启动守护进程,因为我需要一个长期存在的 PHP 进程来通过服务器运行 PubNub 订阅功能。
我更喜欢 A,因为它对我来说是最简单的选择,我可以使用任何托管的 MySQL/PHP 服务器以最少的麻烦完成它。但是,我担心当插件在数千个不同的网站或一些非常繁忙的网站中使用时,这种方法的性能如何,在我的远程服务器上每秒可能有 10 到 100 次数据库提交。
将 B 方法与套接字一起使用是否更有意义,因为我需要订阅 PubNub 才能实现这一点,但成本可能要高得多。另外,由于我不需要异步连接,因为我只需要为每个用户发出一个请求,我认为与直接发送到我的服务器的可靠 ol' HTTP 请求相比,套接字可能是矫枉过正的(而不是发送消息通过 PubNub,然后给我)。
真正做到这一点的最好方法是什么?!
提前致谢。