我正在研究西佛尼的FOSUserBundle。我在google上搜索了“如何检查其他用户是否登录了他们的帐户”,但是我没有做到。我想添加一个绿色的标记,如果一个特定的用户登录,Facebook的方式。
我不知道FOSUserBundle是否有检查用户是否登录的代码。我找到了这个(other question on SOF),但它只检查当前用户是否登录。
我不知道在我的实体中添加这个属性是个好主意
/**
*
* @ORM\Column(name="log_status", type="boolean", nullable=true)
*/
protected $logStatus;这将设置用户的状态(登录与否),我将向fos_user表中添加一个列,以将其保存到数据库中。
发布于 2017-07-31 09:41:45
要解决这个问题,首先需要定义在中登录的真正含义。因为您的代码通常每个请求只调用一次,用户可以在该请求之后5秒钟内离开,或者他可以打开页面一个小时,但在这两种情况下,用户仍可能在会话中登录。
因此,您可能要做的是检查用户当前是否处于活动状态。有多种方法可以做到这一点,并且取决于信息的实时性,你必须为你选择最好的选择。
最简单的方法(imho)是每隔X秒使用AJAX调用(轮询或长轮询)向服务器发送,而不是决定状态会在多长时间内变为脱机状态。如果AJAX调用失败,应该有一些罗马的消息。
其他选项,将给您一个更实时的概述,将是使用WebSockets,或服务器发送的事件。
可能还有其他选项,比如使用像PubNub这样的服务来处理连接,并使用它们的API来确定用户是否处于非活动状态。但你得自己想办法。
发布于 2017-07-31 09:25:19
添加该字段--很好--您可以通过查询来查找状态为真的用户
但是问题是如何保持数据的更新--你不能用symfony来做
对于我来说,我使用了一个ping (Ping),比如Heartbeat来查看用户是否处于活动状态,您可以使用Socket.io
https://stackoverflow.com/questions/45411056
复制相似问题