续安装好composer和workerman之后;TP5运行workerman的操作
TP5想要实现时时通讯:首先先安装好composer和workerman,我之前有写一篇安装的方法,在cmd里面安装;tp5手册上面有写cmd命令的代码;接下来是安装好后如何运行的;
首先在项目中建立一个模块,这边就叫socket模块吧,里面有控制器,index.php;在此之前在config配置文件里面将
'default_module' => 'socket',默认加载的模块为socket;
然后,在控制器里面写代码:
<?php
namespace app\socket\controller;
use think\worker\Server;
use Workerman\Lib\Timer;
use think\Db;
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\n";
} /**
* 每个进程启动
* @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:\phpStudy\WWW\bestonapp\public>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.这是最终结果;这样就能时时获取数据库的数据了;
续安装好composer和workerman之后;TP5运行workerman的操作的更多相关文章
- centos系统下安装使用composer教程
Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.Composer 不是一个包管理器.是的,它涉及 "packages" ...
- VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器
VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器 View Compose服务可安装在管理虚拟机的vC ...
- 安装使用composer基本流程
composer工作原理: 这里经过几个步骤:1.composer读取composer.json(这个文件手动建立,官网有格式),这个json是在当前执行composer目录的,如果目录下没有这个js ...
- centOS7下安装laravel + composer
1.wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer chmod a+x /usr/local/bi ...
- Laravel安装和composer安装
下载地址:https://getcomposer.org/download/ 他会自动找到你的php目录,如果没有记得手动修改 一直点下一步,即可. 如果安装不成功,可能是之前安装过composer ...
- TP5常用命令符操作
ThinkPHP5常用命令符操作 1. 模块自动生成指令: 默认会读取应用目录application下面的build.php作为自动 生成的定义文件,如果你的定义文件位置不同,则需要使用 ...
- 无法启动调试。未安装Silverlight Developer运行时。最新运行时可以从以下地址下载: http://go.microsoft.com/fwlink/?LinkId=146060.
无法启动调试.未安装Silverlight Developer运行时.最新运行时可以从以下地址下载: http://go.microsoft.com/fwlink/?LinkId=146060. 解决 ...
- 转:WIN7上搭建Windows Phone 8 开发环境——VMware Workstation下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法
转自:http://www.cnblogs.com/shaddock2013/p/3155024.html 最近在试着在Windows 7上搭建Windows Phone 8的开发调试环境,使用的是V ...
- inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效
inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...
随机推荐
- html css 怎么使img和a标签在一个行内元素中间对齐
答案是:#box ul.games li img{vertical-align: middle;} 这行很重要哦. <div id="box"> <div cla ...
- 图形学习 Javascript 正则 regexper.com
regexper.com 可以很方便的显示出正则图示,方便学习正则. 比如正则 ^([a-zA-Z0-9+_-])+@([a-zA-Z_-])+(\.[a-zA-Z0-9_-])+ 一目了然,直观显示 ...
- SQL优化之索引分析
索引的重要性 数据库性能优化中索引绝对是一个重量级的因素,可以说,索引使用不当,其它优化措施将毫无意义. 聚簇索引(Clustered Index)和非聚簇索引 (Non- Clustered Ind ...
- FT5X06 如何应用在10寸电容屏
硬件搭起来看现象,如下图: 红色区域是FT5406上报有效数据的范围(1280*600),以左上角为原点 ,X轴方向上报数据的最大值1280,Y轴方向上报的最大数据是600..但是我用的LG的10.1 ...
- 转转转-精通js正则表达式
原文地址:http://www.cnblogs.com/aaronjs/archive/2012/06/30/2570970.html 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字 ...
- HDU 2516 取石子游戏(斐波那契)
取石子游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- mysql5.6.23安装 步骤
1. 准备好配置文件 my.cnf 2.建立my.cnf中用到的必要的目录 3.在mysql目录下有个scripts/mysql_install_db, 执行: scripts/mysql_insta ...
- LIS系列总结
此篇博客总结常见的LIS模型变形的解法. ------------------------------------------------------------------- 〇.LIS的$O(Nl ...
- logger示例
胜哥版 打印日志是很多程序的重要需求,良好的日志输出可以帮我们更方便的检测程序运行状态.Python标准库提供了logging模块,让我们也可以方便的在Python中打印日志. 日志介绍 完整的使用方 ...
- 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #1 如何获取Linux内核
HACK #1 如何获取Linux内核 本节介绍获取Linux内核源代码的各种方法.“获取内核”这个说法看似简单,其实Linux内核有很多种衍生版本.要找出自己想要的源代码到底是哪一个,必须首先理解各 ...