swoole http server 实现跳转功能,并且程序可以不继续往下执行
代码如下
public function redirect($url)
{
$this->header("Location", $url);
$this->status(302);
return $this->end('');
}
但是使用redirect()后,程序没有中断,还是继续往下执行,
后来我用抛出异常的的方法中断了程序,不让他继续往后执行,不过这样的方法造成worker重启,
问题: 有没有好的办法,页面跳转后,程序就马上中断,不会继续执行,页面马上跳转?要求不使用抛出异常的的方法中断程序
回复内容:
使用swoole_http_response方法header,status,end可以实现跳转
代码如下
public function redirect($url)
{
$this->header("Location", $url);
$this->status(302);
return $this->end('');
}
但是使用redirect()后,程序没有中断,还是继续往下执行,
后来我用抛出异常的的方法中断了程序,不让他继续往后执行,不过这样的方法造成worker重启,
问题: 有没有好的办法,页面跳转后,程序就马上中断,不会继续执行,页面马上跳转?要求不使用抛出异常的的方法中断程序
本来想说 exit(0)的 ,感觉有点不对
没用过swoole , 刚才看了一下swoole 的文档 ,
swoole_http_response->end
发送Http响应体,并结束请求处理。
swoole_http_response->end(string $html);
end操作后将向客户端浏览器发送HTML内容,并销毁$request/$response对象
如果开启了KeepAlive,连接将会保持,服务器会等待下一次请求
未开启KeepAlive,服务器将会切断连接
end() 之后 $response 对象被销毁 , http的响应算是完成了 , 业务代码应该也不会执行了.
http://wiki.swoole.com/wiki/p...
可以理解为reactor就是nginx,worker就是php-fpm。reactor线程异步并行地处理网络请求,然后再转发给>worker进程中去处理。reactor和worker间通过IPC方式通信。swoole的reactor,worker,task_worker之间可以紧密的结合起来,提供更高级的使用方式。
一个更通俗的比喻,假设Server就是一个工厂,那reactor就是销售,帮你接项目订单。而worker就是工人,当销>售接到订单后,worker去工作生产出客户要的东西。而task_worker可以理解为行政人员,可以帮助worker干些杂>事,让worker专心工作。
woker重启好像没什么影响.
上一篇: PHP下对缓冲区的控制_PHP教程
下一篇: 10款实用的PHP开源工具_PHP