【问题标题】:can I store session information in websocket server我可以在 websocket 服务器中存储会话信息吗
【发布时间】:2012-12-13 11:12:48
【问题描述】:

我有一个使用 PHP Web 套接字的聊天应用程序。我几乎完成了它。现在刷新页面时,服务器的连接已断开,我必须重新连接它。我的要求是如何为每个用户维护会话。另一个问题是当我尝试连接到来自同一浏览器的另一个选项卡的服务器,然后使用不同的端口号创建另一个连接。如果我保持会话,我可以克服它,请帮助我如何在 PHP Web 套接字中保持会话。

【问题讨论】:

  • 请不要建议使用除php websocket之外的nodejs、socketIO等

标签: php websocket phpwebsocket


【解决方案1】:

您可以在每次向 websocket 服务器发送新消息时发送会话 ID,并且您可以使用会话 ID 轻松检查会话。 像这样

session_id("your session_id");    
session_start();
if(isset($_SESSION["email/username/id whatever"]) && ($_SESSION["password"])){
keep connected and process request
}
else{
disconnect
}

【讨论】:

  • 我经常遇到一些问题,而 php 不是事件库,所以我决定使用 python web socket 而不是 php web socket,并将会话作为属性分配给 python web socket 的对象。谢谢非常感谢您的回复
  • 别提我有责任帮助您在 www.funnenjoy.com/ravinder 上联系(它是一个不错的社交网站)
【解决方案2】:

您只需要在 php 页面中启动一个会话。你可以使用

session_start();

然后只需将必要的变量传递给$_SESSION[](它是会话数组),然后您就可以访问它们,直到您打开浏览器或手动取消设置会话变量数组或销毁会话。

要取消设置会话,您可以使用

unset($_SESSION['variableName']);

或者如果你想销毁所有会话,那么你可以使用

session_destroy();

【讨论】:

  • 感谢回复,但是如何使用连接会话与 websocket
  • 您没有为此编写额外的代码。 PHP 本身会处理这个问题。您可以通过正常的数组访问约定通过会话数组传递对象。
猜你喜欢
  • 2021-06-23
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 2016-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多