在本篇文章里小编给大家分享了一篇关于php中Workerman框架实例讲解内容,对此有兴趣的朋友们可以学习参考下。
在我们探讨php框架的开发时,更多的是偏向于理论的框架。那么本篇要讲的Workerman框架,与其他的框架有很大的不同,可以广泛的应用在生活中。我们平时所用到的软件,也许正是Workerman开发出来的。下面我们就php中Workerman框架的概念、与其他框架区别带来讲解。
1、概念
Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、异步消息队列等众多高性能组件。
2、与其他框架区别
Workerman 的核心要点和 Swoole 一致,但采用了纯 PHP 的 Web Socket 实现。和 Swoole 相比最大的好处是移除了对 C 扩展的需求,但必须采用 CLI 模式运行使其还是无法跑在虚拟主机上。
3、使用实例
websocket服务器
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
// 创建一个Websocket服务器
$ws_worker = new Worker("websocket://0.0.0.0:2346");
$ws_worker->count = 4;
// 在新连接到来时发出
$ws_worker->onConnect = function($connection)
{
echo "New connection\n";
};
// 接收数据时发出
$ws_worker->onMessage = function($connection, $data)
{
// Send hello $data
$connection->send('hello ' . $data);
};
// 连接关闭时发出
$ws_worker->onClose = function($connection)
{
echo "Connection closed\n";
};
// 运行worker
Worker::runAll();
知识点扩展:
workerman的特性
Workerman是一款纯PHP开发的开源的高性能的PHP socket 异步框架。被广泛的用于移动通讯、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。 支持Websocket、HTTP等协议,支持自定义协议。基于workerman开发者可以更专注于业务逻辑开发,不必再为PHP Socket底层开发而烦恼。
workerman诸多的不同寻常的特性,使得PHP开发者可以开发出不同寻常的应用程序。
官网地址: http://www.workerman.net
官网有很具体的开发文档,这里我就给大家介绍下 ,它的一些特性,功能还是很强大的!
纯PHP开发
workerman完全使用PHP开发,使用workerman开发的应用程序不依赖php-fpm、apache、nginx这些容器就可以独立运行。 这使得PHP开发者开发、部署、调试应用程序非常方便。
支持PHP多进程
为了充分发挥服务器多CPU的性能,workerman默认支持多进程多任务。workerman开启一个主进程和多个子进程对外提供服务, 主进程负责监控子进程退出信号,并负责生成新的子进程去处理服务,这样做不仅提高了应用程序的性能,而且使得workerman更加稳定。
支持TCP、UDP
workerman支持TCP和UDP两种传输层协议,只需要更改配置的一个字段,便可以更换传输层协议,业务代码无需任何改动。
到此这篇关于php中Workerman框架实例讲解的文章就介绍到这了,更多相关php中Workerman框架是什么内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:php中Workerman框架实例讲解
基础教程推荐
- php array分组,PHP中array数组的分组排序 2022-08-01
- PHP实现Redis单据锁以及防止并发重复写入 2022-10-12
- PHP命名空间简单用法示例 2022-12-01
- thinkphp3.2.3框架动态切换多数据库的方法分析 2023-03-19
- 在Laravel中实现使用AJAX动态刷新部分页面 2023-03-02
- PHP获取MySQL执行sql语句的查询时间方法 2022-11-09
- laravel 解决多库下的DB::transaction()事务失效问题 2023-03-08
- laravel ORM关联关系中的 with和whereHas用法 2023-03-02
- 使用PHP开发留言板功能 2023-03-13
- PHP中的错误及其处理机制 2023-06-04