4

有一个使用 socket.io 作为其“API”的网站。本质上,任何人都可以下载网站的源代码并对其进行修改以轻松制作自己的客户端。例如,我有六个客户端,它们都运行相同的自定义客户端脚本。该脚本托管在我自己的域上,而不是带有 socket.io API 的那个。

我希望能够跟踪谁已连接,并保留总的某些数据。例如,如果每个单独的客户端有 0.5 余额,我希望他们能够知道总数是 3 余额,因为服务器。

我能想到的最明显的方法是使用 AJAX 和调用 MySQL 来跟踪事情,但这似乎是冗长的。

我也可以做 CURL,但这在技术上具有挑战性。

有没有一种简单直接的方法可以简单地汇总来自六个不同 socket.io 客户端的余额并将信息发送回它们?

4

1 回答 1

0

在 PHP 后端使用对象缓存层(如 APC 或 memcached)作为共享内存。这样,您可以保持不同实例/客户端之间的同步。

请记住,您必须实现一些多处理安全性,因为这不是线程安全的。

例如:

/* PHP application 1: */
(($value = apc_fetch("IncrementValue")) != FALSE) ? apc_store("IncrementValue",$value+1) : apc_store("IncrementValue",1);

然后另一个人可以像这样访问它:

echo apc_fetch("IncrementValue");

这是在会话之间进行通信的一种快速但粗糙的方式。

于 2013-08-20T12:41:51.727 回答