PHP + MySQL + Socket.io – 实时在线状态的朋友
我使用PHP / MySQL和node.js(socket.io)创build了一个类似于facebook的实时聊天应用程序,但是我现在面临以下问题。
脚本
login的用户有一个类似Facebook的朋友列表,当他的任何朋友离开,离线,在线等我想他的朋友列表实时更新,而无需重新加载整个朋友列表,例如ajax轮询每x秒。
login用户在网站上进行的每一个操作 ,比如页面的变化,新的聊天窗口,search,或者我有一个名为last_active
,用当前的unix_timestamp进行更新。
这是为了跟踪用户在线或离开。 如果时间戳大于300秒,则用户离开。
每三十秒钟一次 ,数据库last_online
用户login的unix_timestamp更新last_online
列。
这是为了跟踪用户在线。 如果时间戳大于35秒,我们可以认为他已经closures了窗口,将被视为离线,而不是离开。
用户也可以手动设置他的在线状态为繁忙,不可见等,并且这被设置为login用户的列的custom_status
。
上面的一切工作,因为它应该提供,用户总是重新加载页面,看看他的朋友有什么在线状态,但我希望这是实时更新,而不是当重新加载整个页面或使用Ajax轮询来重新加载整个朋友列表。
我正在考虑在客户端比较当前的在线状态,当发生变化的时候发送到socket.io。 然后,我遍历所有连接的客户端,并向所有连接的朋友发出用户新的在线状态。
但是,我想这将有性能问题,当说例如1000个用户连接?
你将如何处理?
- 如何在Python中使用socket.io客户端?
- 在用户发送GET请求时,如何才能等待数据,直到它从TCP服务器的Node.js中接收到?
- 当从socket.io – node.js接收到消息时,从客户端播放audio
- 如何在node.js和socket.io应用程序中组织套接字处理
- Android Node.js Socket.io不能连接
- socket.io轮询返回Laravel 500 NotFoundHttpException
- string在节点的TLS套接字连接的另一端连接
- Socket TCP连接在不同的服务器上
- 什么因素导致数据在python(或python / node.js)的套接字中不通过?