如何杀死PHP会话?

这个一般性话题在here,here,here之前出现,毫无疑问在互联网上的其他地方也是如此.在我的情况下,与这些不同,挂起来自一个永远不会得到消息的阻塞套接字,也许这就是为什么那里描述的解决方案对我没用.我正在开发一个C应用程序,它通过本地套接字连接与PHP脚本通信,当C应用程序崩溃时,它离开PHP脚本的套接字等待永远不会来的消息.我尝试过使用session_destroy和session_unset(在session_start之前的脚本中先调用它们),但它们不起作用;即使退出并重新启动浏览器也无济于事.如果我删除session_start,重新加载脚本然后通过客户端结束会话,我只能停止会话.如何在不必经历的情况下杀死会话?

编辑:我忘了提,我也尝试用套接字时间

socket_set_option($socket,0, SO_RCVTIMEO, array("sec"=>1, "usec"=>0));

但是我收到了“无效操作”错误,但是没有用.

编辑2:按照提示here设置手动超时,运行良好.我仍然不知道如何杀死一个例如卡在无限循环中,但是哦.

解决方法:

也许你可以给套接字超时?例如socket_select有一个超时参数.

作为超时的1000s的值可能太高,因为apache之前可能已经杀死了该进程(请参阅php.ini中的max_execution_time)

上一篇:Puzzle迷宫问题


下一篇:阿里云凌晨回应故障:已全部恢复 将尽快赔偿