Workerman是一款开源高性能异步PHP socket即时通讯框架。支持高并发,超高稳定性,被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 (推荐学习: workerman教程)
支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、MQTT物联网客户端、异步消息队列等众多高性能组件。
workerman本身是一个PHP多进程服务器框架,具有PHP进程管理以及socket通信的模块,所以不依赖php-fpm、nginx或者apache等这些容器便可以独立运行。
1.首先下载官方Workerman框架
2.作为服务器端
在workerman框架根目录新建一个文件
use Workerman\Worker; require_once __DIR__ . '/Workerman/Autoloader.php'; // 注意:使用的是websocket协议 $ws_worker = new Worker("websocket://0.0.0.0:2000"); //这里最好是0.0.0.0 // 启动4个进程对外提供服务 $ws_worker->count = 4; $ws_worker->onWorkerStart = function($ws_worker){ }; $ws_worker->onConnect = function($ws_worker){ }; $ws_worker->onMessage = function($connection, $data)use($ws_worker){ //如果想用$ws_worker的话需要 use传进来 }; $worker->onClose = function($connection){ }; php yaofile.php start debug模式 启动 php yaofile.php start -d (守护进程)启动
3.前端代码
ws = new WebSocket("ws://47.90.81.150:2000"); //服务器的ip ws.onopen = function() { console.log("连接成功"); } ws.onmessage = function(e) { console.log("收到服务端的消息:" + e.data); } foreach($ws_worker->connections as $connection) { $connection->send($cachearray); }
4.作为客户端
use Workerman\Connection\AsyncTcpConnection; //要引用这个文件 $con = new AsyncTcpConnection('ws://api.huobi.pro:443/ws'); //远程服务器的连接 // 设置以ssl加密方式访问,使之成为wss $con->transport = 'ssl'; $con->onConnect = function($con) { $con->send($data); } $con->onMessage = function($con, $data) { }; $con->connect();
以上是workerman怎么用的详细内容。更多信息请关注PHP中文网其他相关文章!