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的操作的更多相关文章

  1. centos系统下安装使用composer教程

    Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.Composer 不是一个包管理器.是的,它涉及 "packages" ...

  2. VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器

                        VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器      View Compose服务可安装在管理虚拟机的vC ...

  3. 安装使用composer基本流程

    composer工作原理: 这里经过几个步骤:1.composer读取composer.json(这个文件手动建立,官网有格式),这个json是在当前执行composer目录的,如果目录下没有这个js ...

  4. centOS7下安装laravel + composer

    1.wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer chmod a+x /usr/local/bi ...

  5. Laravel安装和composer安装

    下载地址:https://getcomposer.org/download/ 他会自动找到你的php目录,如果没有记得手动修改  一直点下一步,即可. 如果安装不成功,可能是之前安装过composer ...

  6. TP5常用命令符操作

    ThinkPHP5常用命令符操作   1. 模块自动生成指令:   默认会读取应用目录application下面的build.php作为自动   生成的定义文件,如果你的定义文件位置不同,则需要使用 ...

  7. 无法启动调试。未安装Silverlight Developer运行时。最新运行时可以从以下地址下载: http://go.microsoft.com/fwlink/?LinkId=146060.

    无法启动调试.未安装Silverlight Developer运行时.最新运行时可以从以下地址下载: http://go.microsoft.com/fwlink/?LinkId=146060. 解决 ...

  8. 转:WIN7上搭建Windows Phone 8 开发环境——VMware Workstation下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法

    转自:http://www.cnblogs.com/shaddock2013/p/3155024.html 最近在试着在Windows 7上搭建Windows Phone 8的开发调试环境,使用的是V ...

  9. inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效

    inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...

随机推荐

  1. Pacemaker+Corosync搭建PostgreSQL集群

    https://my.oschina.net/aven92/blog/518928 · PostgreSQL中国社区: http://postgres.cn/index.php/home · Post ...

  2. CentOS 6.6下 BCM4312 802.11b/g无线网卡驱动安装

    1.目前www.broadcom.com网站上最新版本为hybrid-v35,但此版本与2.6.32不匹配,无法识别验证密码,搜索网上说是要求升级内核,后根据http://www.dadclab.co ...

  3. Phonegap 事件机制

    PhoneGap事件包含另个部分,一个是传统网页触发的事件,比如DOM加载,超链接,form表单提交事件等. 另一个是PhoneGap独有的事件.如 deviceready:只在设备在本地环境和页面完 ...

  4. 【python】使用HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies

    一.从HTML文档中提取链接 模块HTMLParser,该模块使我们能够根据HTML文档中的标签来简洁.高效地解析HTML文档. 处理HTML文档的时候,我们常常需要从其中提取出所有的链接.使用HTM ...

  5. 利用PHP实现页面跳转同时POST传参,CURL不行

    function payto(){ echo "<form style='display:none;' id='form1' name='form1' method='post' ac ...

  6. SPOJ Count on a tree(主席树+LCA)

    一.题目 COT - Count on a tree You are given a tree with N nodes. The tree nodes are numbered from 1 to  ...

  7. 用Tensorflow搭建网络

    层 创建层 创建密集连接层,并应用激活函数 x = tf.placeholder(tf.float32, shape=[None, 3]) linear_model = tf.layers.Dense ...

  8. 细说Cookie(转)

    原文地址:http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html#undefined Cookie虽然是个很简单的东西,但它又是W ...

  9. 转帖:关于MongoDB你需要知道的几件事

    Henrique Lobo Weissmann 是一位来自于巴西的软件开发者,他是 itexto 公司的联合创始人,这是一家咨询公司.近日,Henrique 在博客上撰文谈到了关于 MongoDB 的 ...

  10. 给iOS开发新手送点福利,简述UISlide的属性和用法

    UISlide属性 1.   minimumValue  : 当值可以改变时,滑块可以滑动到最小位置的值,默认为0.0 _slider.minimumValue = 10.0; 2.   maximu ...