workerman怎么用

发布时间 - 2019-12-05 00:00:00    点击率:

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  # mysql  # nginx  # 并发  # 异步  # redis  # apache  # 微信小程序  # http  # websocket  # 物联网 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用PHP快速搭建高效网站?分步指南  原生JS实现图片轮播切换效果  简单实现Android验证码  三星、SK海力士获美批准:可向中国出口芯片制造设备  实例解析angularjs的filter过滤器  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  如何获取上海专业网站定制建站电话?  如何快速搭建高效服务器建站系统?  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  如何在云主机上快速搭建多站点网站?  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel如何发送系统通知?(Notification渠道示例)  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何在阿里云完成域名注册与建站?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何在云服务器上快速搭建个人网站?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  Laravel怎么清理缓存_Laravel optimize clear命令详解  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  如何在云主机上快速搭建网站?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  Linux系统运维自动化项目教程_Ansible批量管理实战  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  如何在Windows服务器上快速搭建网站?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  如何在阿里云服务器自主搭建网站?  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  C++用Dijkstra(迪杰斯特拉)算法求最短路径  公司网站制作价格怎么算,公司办个官网需要多少钱?  晋江文学城电脑版官网 晋江文学城网页版直接进入  微信小程序 wx.uploadFile无法上传解决办法  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  HTML 中动态设置元素 name 属性的正确语法详解  Laravel如何使用Gate和Policy进行授权?(权限控制)  如何在橙子建站中快速调整背景颜色?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel如何实现API资源集合?(Resource Collection教程)  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?