php - swoole http server 实现跳转功能,并且程序可以不继续往下执行
怪我咯
怪我咯 2017-04-11 10:38:17
0
1
753

使用swoole_http_response方法header,status,end可以实现跳转

代码如下

public function redirect($url) { $this->header("Location", $url); $this->status(302); return $this->end(''); }

但是使用redirect()后,程序没有中断,还是继续往下执行,

后来我用抛出异常的的方法中断了程序,不让他继续往后执行,不过这样的方法造成worker重启,

问题:有没有好的办法,页面跳转后,程序就马上中断,不会继续执行,页面马上跳转?要求不使用抛出异常的的方法中断程序

怪我咯
怪我咯

走同样的路,发现不同的人生

reply all (1)
阿神

本来想说 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重启好像没什么影响.

    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!