hi,我们今天来讲讲Workerman,什么是Workerman呢? 看看官网上的介绍
Workerman是一款开源高性能异步PHP socket框架。支持高并发,超高稳定性,被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、MQTT物联网客户端、异步消息队列等众多高性能组件
先来点枯燥但又好玩的知识点
下面以我自己的理解哔哔几句
说白了HTTP就是:用TCP 创造一个服务
有客户端连接就发送HTTP头部、响应等等数据
那个客户端就是用户的浏览器
因为是协议 所以跨平台 只要读完HTTP协议的基础 就可以实现浏览器和WEB服务器(相当麻烦
需要考虑n个东西 )
上述上述过程是可循环执行的。
首先 我们来下载一下Workerman
我们使用composer官网下期会出这个教程
我们来写个简单的Web Socket聊天室吧
<?php use Workerman\Worker; require_once __DIR__ . '/vendor/autoload.php'; // 新建WebSocket协议 端口是2000 $ws_worker = new Worker("websocket://0.0.0.0:2000"); // 启动4个进程对外提供服务 $ws_worker->count = 4; // 当收到客户端发来的数据后返回给所有客户端 $ws_worker->onMessage = function($connection, $data) use($ws_worker) { // 遍历当前进程所有的客户端连接,发送客户端的数据 foreach($ws_worker->connections as $connection) { $connection->;send($data); } }; // 运行worker Worker::runAll();
启动php 文件名 start
OK出现了以后 表示我们的服务启动了
然后新建一个html文件输入
<script> ws = new WebSocket("ws://127.0.0.1:2000"); ws.onopen = function() { alert("连接成功"); ws.send('tom'); alert("给服务端发送一个字符串:tom"); }; ws.onmessage = function(e) { alert("收到服务端的消息:" + e.data); } </script>
双击打开
求赞 蟹蟹