关键词:
TP5想要实现时时通讯:首先先安装好composer和workerman,我之前有写一篇安装的方法,在cmd里面安装;tp5手册上面有写cmd命令的代码;接下来是安装好后如何运行的;
首先在项目中建立一个模块,这边就叫socket模块吧,里面有控制器,index.php;在此之前在config配置文件里面将
‘default_module‘ => ‘socket‘,默认加载的模块为socket;
然后,在控制器里面写代码:
<?php namespace appsocketcontroller; use thinkworkerServer; use WorkermanLibTimer; use thinkDb; class Index extends Server { protected $socket = ‘websocket://localhost:2346‘; /** * 收到信息 * @param $connection * @param $data */ public function onMessage($connection, $data) { $connection->send(‘我收到你的信息了‘); } /** * 当连接建立时触发的回调函数 * @param $connection */ public function onConnect($connection) { } /** * 当连接断开时触发的回调函数 * @param $connection */ public function onClose($connection) { } /** * 当客户端的连接上发生错误时触发 * @param $connection * @param $code * @param $msg */ public function onError($connection, $code, $msg) { echo "error $code $msg "; } /** * 每个进程启动 * @param $worker */ public function onWorkerStart($worker) { Timer::add(5, function()use($worker){ $online_people_count = Db::name(‘session‘)->count(); $deal_order_count = Db::name(‘order‘)->where(‘order_status‘,1)->count(); $sale_server_count = Db::name(‘service‘)->where(‘service_status‘,1)->count(); //echo "".$online_people_count.‘--------‘.$deal_order_count.‘----------‘.$sale_server_count; $z="{$online_people_count},{$deal_order_count},{$sale_server_count}"; foreach($worker->connections as $connection) { $connection->send($z); } }); } }
这边的代码主要还是看,onWorkerStart这个方法,这个方法,获取数据库的值之后,传给需要接收那个数据的
视图模块,就是页面需要哪里显示那个数据,就是通过这里来发送的数据,这里是每五秒访问一次数据库
有了这些之后在,视图模块代码里面接收数据的代码:
//监听消息 // 连接服务端 try{ ws = new WebSocket("ws://localhost:2346"); ws.onopen = function() { console.log(‘连接成功‘); }; ws.onmessage = function(e) { var result = e.data.split(‘,‘); if(result.length==3){ $("#on_people_sum").html(result[0]); $("#menu23").html(result[1]); $("#menu28").html(result[2]); } }; }catch(err){ }
这样上面的result[0]...;就是数据库中获取的数据,只要数据有改变这个值就会改变;
最后在cmd里面运行D:phpStudyWWWestonapppublic>php index.php
----------------------- WORKERMAN -----------------------------
Workerman version:3.3.90 PHP version:5.4.45
------------------------ WORKERS -------------------------------
worker listen processes status
none websocket://localhost:2346 4 [OK]
----------------------------------------------------------------
Press Ctrl-C to quit. Start success.这是最终结果;这样就能时时获取数据库的数据了;
workerman自动加载等问题
如果加载有问题,在报错的地方加上代码。方便分析加载的文件。var_dump(get_included_files()); 如果composer无法正常加载,可以修改vendor/composer/autoload_static.php:24注意相对目录的正确。publicstatic$prefixDirsPsr4=array(‘think\composer\‘=>a... 查看详情
composer不成功的原因
1在下载好composer.setup的过程中,出现了错误,安装好composer.setup后并没有在path中出现关于composer.setup/bin的目录,如果没有出现这个path的这个路径的话,那么你在cmd里面就会出现找不到这条命令的情况2.安装好phpstudy的这个安装程... 查看详情
如何通过composer安装laravel
参考技术Acomposer和php环境装好之后输入下面的命令初始化一个laravel的项目composercreate-projectlaravel/laravelmy-project然后在当前目录就会生成一个my-project的目录,里面是用laravel初始化好了的 查看详情
如何通过composer安装laravel
参考技术Acomposer和php环境装好之后输入下面的命令初始化一个laravel的项目composer create-project laravel/laravel my-project然后在当前目录就会生成一个my-project的目录,里面是用laravel初始化好了的 查看详情
关于安装好composer的详细步骤
Composer安装tp5教程1.下载composer先介绍几个网站Composer官网https://getcomposer.org/我们的终极目标得到composer.phar这个文件不管用什么方法只要我们得到这个文件下载就是成功的,介绍最简单的一种给大家打开composer中文网http://www.phpcompo... 查看详情
开发composer包,打通github和packagist,并自动更新
1. 首先需要本地安装好composer,并配置好环境变量,在命令行输入composer,显示以下信息就表示正常安装 2.在github对应项目的根目录下进行初始化composer 初始化完成后,就会在目录下自... 查看详情
linux运维安装php工具composer(代码片段)
...先要明确apache即httpd以及mysql/MariaDB(数据库)是否已经安装好了,如果没有,需要先去安装apache和数据库。若都安装好了, 查看详情
swoole和workerman哪个更易开发
...内存管理、数据结构、通信协议解析上肯定要比PHP开发的workerman高。功能上swoole提供的高级特性很多,列举几个workerman没有的吧,比如SSL/TLS隧道加密、http2.0、异步mysql驱动、异步redis驱动、异步的http/websocket客户端、process、lock... 查看详情
rocketmqrabbitmqkafkamongoelasticsearchlogstashkibananacosskywalkingseatasparkzookeeper安装(代码片段)
...rabbitmq的管控页面四、提供其他项目依赖总结前言已经安装好了宝塔面板、并且可以在Docker栏目,选择docker安装,会把docker和docker-compose都安装好了一、docker-compose.yml配置在任意一个目录下创建并编辑vimdocker-compose.yml配置... 查看详情
workerman(代码片段)
yuminstallphp-process即可安装pcntl和posix扩展https://www.workerman.net/doc 需要了解的基本概念 1、TCP传输层协议TCP是一种面向连接的、可靠的、基于IP的传输层协议。TCP传输层协议一个重要特点是TCP是基于数据流的,客户端的请求会... 查看详情
使用workerman实现在线聊天-第一版
workerman是一个php编写的通讯服务。之前的项目都是用它做数据接口服务这次用它做一个简单的在线聊天室~ 1.下载最新版本的workerman可以去 http://www.workerman.net去下载我这里将service和client分开了两个文件夹,方便管理大致... 查看详情
elasticsearch在windows上安装好了之后怎么使用?
windows10上安装Elasticsearch过程记录一、安装和配置JavaJDK1、下载:http://download.oracle.com/otn...4.exe2、设置环境变量:(1)点击【系统变量】下的【新建】按钮变量名:JAVA_HOME 变量值:C:ProgramFilesJavajdk1.8.0_92(2)按照同样的方式创建系... 查看详情
python和jupyter安装
...载之后,双击打开 在安装时请勾选上addtopath选项,安装好之后,点击close关闭,打开cmd命令行,输入pipinstalljupyter语句,进行jupyter的安装安装好jupter之后,输入jupyternotebook,即可在浏览器中 查看详情
安装好jdk之后,为什么需要去配置path环境变量?
...计算机的任意目录使用bin目录里的javac和java等。所以在安装好JDK后还需要配置Path变量————————————————版权声明:本文为CSDN博主「YaroDong」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声... 查看详情
composer的使用
每次将要安装的依赖(lib或者package)先写在composer.json文件,然后执行composerinstall,接着就会下载composer.json中写好的那些lib或者package,等待这些文件下载结束之后,会生成一个composer.lock文件,该文件包含当前各lib或者p... 查看详情
docker~docker-compose和vs解决方案的关系
...个api,web项目,这类似于最近说的微服务,而我们的docker-compose与微软件正好有了一种默契,当你为你的解决方案添加docker支持之后,你会发布有个docker-compose出现了,它会把所有可以发布的项目都集成起来,进行管理,然后可以... 查看详情
linux安装dockercompose(代码片段)
...以包括若干运行相同镜像的容器实例。对于Mac和Windows安装好Docker以后,就已经安装好DockerCompose,不需要手动安装对于LinuxCentOS,需要手动安装docker-compose使用YAML的配置文件对容器进行管理,YAML的配置文件后缀可... 查看详情
composer与thinkphpv6的下载与安装
安装说明:6.0版本开始,必须通过Composer方式安装和更新,所以无法再通过Git下载安装。第一步,安装Composer网址:Composer下载操作:Composer下载成功之后直接打开,依次进行下列安装步骤安装完成之后... 查看详情