首页 » Web前端 » swoole推送php技巧_php只能做网站基于swoolewebsocket开拓双向通信应用

swoole推送php技巧_php只能做网站基于swoolewebsocket开拓双向通信应用

访客 2024-11-22 0

扫一扫用手机浏览

文章目录 [+]

双向通信

那么,是否PHP就无法用来开拓双向通信的运用呢?

swoole推送php技巧_php只能做网站基于swoolewebsocket开拓双向通信应用

答案是否定的。
PHP内置socket通信支持,可以与linux程序基于socket进行双向通信。
php swoole框架封装了一个websocket做事端,基于此可以很方便地建立一个与html5的websocket客户端进行通信的做事。

swoole推送php技巧_php只能做网站基于swoolewebsocket开拓双向通信应用
(图片来自网络侵删)
一、Swoole先容

swoole

Swoole是一个面向生产环境的 PHP 异步网络通信引擎,使 PHP 开拓职员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 做事。
Swoole 可以广泛运用于互联网、移动通信、企业软件、云打算、网络游戏、物联网(IOT)、车联网、智能家居等领域。
利用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升。

swoole支持用于搭建多种server,包括http server、websocket server、tcp server、redis server等等。
这里我们利用到的是个中的websocket server。

二、WebSocket先容

WebSocket

WebSocket是一种在单个TCP连接上进行全双工通信的协议。
WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。
WebSocket API也被W3C定为标准。

WebSocket使得客户端和做事器之间的数据交流变得更加大略,许可做事端主动向客户端推送数据。
在WebSocket API中,浏览器和做事器只须要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

大略地来说,websocket协议实现了浏览器和做事器之间的双向通信。
而html5原生支持websocket协议。

三、swoole websocket 做事端demo

1.安装swoole

swoole以php扩展的形式进行加载,首先须要为你的php安装swoole扩展,安装命令如下:

pecl install swoole

安装成功后在php.ini文件加上extension=swoole.so加载扩展

2.启动做事端

新建一个php文件,文件名为server.php,文件内容如下:

$server = new Swoole\WebSocket\Server(\公众0.0.0.0\"大众, 9501);$server->on('open', function (Swoole\WebSocket\Server $server, $request) { echo \公众server: handshake success with fd{$request->fd}\n\"大众; });$server->on('message', function (Swoole\WebSocket\Server $server, $frame) { echo \"大众receive from {$frame->fd}:{$frame->data}\n\"大众; $server->push($frame->fd, \"大众this is server\"大众); });$server->on('close', function ($ser, $fd) { echo \"大众client {$fd} closed\n\"大众; });$server->on('request', function (Swoole\Http\Request $request, Swoole\Http\Response $response) { global $server;//调用外部的server // $server->connections 遍历所有websocket连接用户的fd,给所有用户推送 foreach ($server->connections as $fd) { // 须要先判断是否是精确的websocket连接,否则有可能会push失落败 if ($server->isEstablished($fd)) { $server->push($fd, $request->get['message']); } }});$server->start();

此做事监听本机的9501端口,运行命令 php server.php 启动做事。

四、HTML5 WebSocket 客户端demo

1.客户端代码

新建一个testServer.html文件,写入以下内容:

<!doctype html><html><head> <title>测试WebSocket</title></head><body> <script> var ws = new WebSocket(\"大众ws://【做事端IP】:9501\"大众); ws.onopen = function(event){ console.log(\"大众connected!\"大众); ws.send(\"大众hello server,this is client!\公众); }; ws.onmessage= function(event){ console.log(\"大众server message:\"大众+event.data); } ws.onclose = function(event){ console.log(\"大众closed!\"大众); }; </script></body></html>

将【做事端IP】更换成swoole做事端ip,保存文件。

五、测试demo

(1) 访问步骤四的客户端demo页面,首先与做事端建立连接,查看浏览器console log,可以看到显示:

connected!

(2) 查看linux掌握台,可以看到显示:

server: handshake success with fd1

(3) 接着客户端向做事端发了一条,做事端掌握台显示:

receive from fd1:hello server,this is client!

(4) 做事端收到后,向客户端回答了一条,客户端掌握台显示:

server message:this is server

以上便是基于swoole+websocket开拓双向通信运用的大略演示,在线谈天、网页游戏等实时通信的运用也可基于此办法进行开拓。
php开拓效率高,可以更快、更高效地进行此类运用地开拓,节约开拓本钱。

大家如果还有什么疑问,可以关注公众号“全栈社区”进行提问。

关注微信公众年夜众号“全栈社区”,可获取更多站长、开拓者必备的前端、后端、做事器技能干货。
旭猫云19元VPS:www.xumaoyun.com
标签:

相关文章

今日头条算法如何实现个化推荐与精准传播

信息传播方式发生了翻天覆地的变化。今日头条作为国内领先的信息分发平台,凭借其强大的算法推荐系统,吸引了海量用户。今日头条的算法究竟...

Web前端 2025-01-31 阅读1 评论0

今日头条算法关闭之谜内容分发新格局

今日头条作为一款备受瞩目的新闻资讯平台,凭借其独特的算法推荐机制,吸引了大量用户。近期有关今日头条算法关闭的消息引发了广泛关注。本...

Web前端 2025-01-31 阅读1 评论0

今日头条算法智能推荐背后的科技魅力

信息爆炸的时代已经到来。人们每天在互联网上接触到海量的信息,如何从中筛选出有价值的内容,成为了人们关注的焦点。今日头条作为一款智能...

Web前端 2025-01-31 阅读1 评论0

今日头条算法专利申请个化推荐的秘密武器

信息爆炸的时代已经来临。在众多信息中,如何快速找到自己感兴趣的内容成为了一个难题。今日头条作为中国领先的资讯平台,凭借其独特的算法...

Web前端 2025-01-31 阅读1 评论0

今日头条算法机器推荐模式的秘密与挑战

大数据、人工智能等新兴技术的应用已经渗透到我们生活的方方面面。在信息爆炸的时代,人们获取信息的渠道越来越丰富,如何在海量信息中找到...

Web前端 2025-01-31 阅读1 评论0