有一个网站使用socket.io作为其"API"。从本质上讲,任何人都可以下载网站的源代码,并对其进行修改,从而轻松创建自己的客户端。例如,我有这样六个客户端,它们都运行相同的自定义客户端脚本。该脚本托管在我自己的域上,而不是带有socket.io API的域。
我希望能够跟踪连接的人,并保留某些数据的总数。例如,如果每个客户端都有0.5的余额,我希望他们能够知道,由于服务器的原因,总数是3的余额。
我能想到的最明显的方法是用AJAX和对MySQL的调用来跟踪事情,但这似乎很冗长。
我也可以做CURL,但这在技术上很有挑战性。
有没有一种简单直接的方法可以简单地将六个不同socket.io客户端的余额相加,并将信息发送回他们?
在PHP后端使用对象缓存层,如APC或memcached作为共享内存。这样,您就可以保持不同实例/客户端之间的同步。
请记住,您将不得不实现一些多处理安全性,因为这不是线程安全的。
例如:
/* PHP application 1: */
(($value = apc_fetch("IncrementValue")) != FALSE) ? apc_store("IncrementValue",$value+1) : apc_store("IncrementValue",1);
另一个可以这样访问它:
echo apc_fetch("IncrementValue");
这是一种快速但粗糙的会话间沟通方式。