首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解

话不多说,直接上代码: 新建WebSocket.php控制器: (监听端口要确认服务器放行,宝塔环境还需要添加安全组规则) <?...= false, //守护进程化(上线改为true) 'backlog' = 128, //Listen队列长度 'dispatch_mode' = 2, //固定模式,保证同一个连接发来数据只会被同一个...worker处理 //心跳检测:60秒遍历所有连接,强制关闭10分钟内没有向服务器发送任何数据连接 'heartbeat_check_interval' = 60, 'heartbeat_idle_time...用户刷新重连一次,fd标识都会改变。...更多关于thinkPHP相关内容感兴趣读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI

1.8K31

tp5框架基于Ajax实现列表无刷新排序功能示例

分享给大家供大家参考,具体如下: 在后台管理时候我们有时需要对数据进行排序,以控制数据模板显示顺序,排序原理就是修改数据库,然后更新视图。...我们可以单独写一个方法来实现排序功能,成功后刷新页面,也可以利用Ajax技术,实现数据局部请求,也就是无刷新排序功能。...现在想要达到效果是排序input框输入数值,点击排序实现无刷新排序功能。 首先是表格(cate.html)这一块我们要单独摘出来,放入到一个单独页面当中,方便我们数据请求。...,重点是: <input type="text" value="{$vo.order}" name="{$vo.id}" </td 这句显示排序值得同时,为每一个input框设置了一个name值,这个值就是分类...id值,我们把一组id、order都放进json变量当中,传递给控制器。

1.2K31
您找到你想要的搜索结果了吗?
是的
没有找到

ThinkPHP5&5.1框架关联模型分页操作示例

分享给大家供大家参考,具体如下: 利用数据分页通常比较简单,但在实际项目中,我们往往需要处理复杂数据,例如多表操作,这时候我们就需要利用模型层关联操作得到最终想要数据,而这些数据我们其实也是可以利用...卖车辆我们称之为车源,车源车主之间是多对一关系(车主可以有多辆车,一辆车只属于一个车主);车源车辆图片之间是一对多关系(一辆车有多个图片,一个图片只属于一辆车);车辆还有自定义属性,它们之间是多对多关系...可以看出,这块是非常复杂,完全使用数据库操作会非常复杂,所以我们选择使用模型层进行处理。...$this- assign("cars_list",$cars_list); // dump($cars_list); return view(); } 其中getCarsList()方法模型层实现...更多关于thinkPHP相关内容感兴趣读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI

58520

ThinkPHP5.1+Ajax实现无刷新分页功能示例

需要在后台展示自定义属性列表(lst.html),其中列表部分摘出来,放到(paginate1.html): <div class="row" <div class="col-sm-12"...</div </div </div </div </div 其中self是服务器端传递过来自定义属性,并进行了分页操作: $selfattribute_select...包裹起来: <div id="paginate" {include file="selfattribute/paginate1"} </div ThinkPHP5.1带分页类使用是BootStrap...样式,它在页面显示时实际会有一个pagination类,查看源代码如下: <ul class="pagination" <li class="disabled" <span «...:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork

1.3K41

TP5框架实现一次选择多张图片并预览方法示例

分享给大家供大家参考,具体如下: 点击选择图片(可选多张),确定后将选择图片显示页面上,已经选择图片也可以删除,点击提交将图片提交给后台。 1、效果图 ?...(文件名base64数据) var fd; //FormData方式发送请求 var oSelect = document.getElementById("select"); var oAdd = document.getElementById...= function(){ this.remove(); // 页面删除该图片元素 delete dataArr[this.index]; // 删除dataArr对应数据 }...更多关于thinkPHP相关内容感兴趣读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI...(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

71030

一起来做一个json格式化工具吧

说到json格式化你肯定很熟悉,毕竟压缩后json数据基本不可读,为了方便查看,我们可以在编辑器可以通过插件一键格式化,也可以通过一些在线工具来美化,当然,有时开发也会遇到json格式化需求,...开始结束括号可以用div来包裹,中间整体部分也用一个div来包裹,并且给它设置margin来实现缩进,具体到一行属性值,可以通过div包裹span标签。...可以看到有几个小问题,一是空对象两个括号其实是不需要换行,二是值是非空对象开始括号应该key显示同一行,三是对象最后一个逗号是不需要。...可以看到又有一个小问题,数组或对象某个数组或对象后逗号应该紧跟结束括号才对,但是因为我们结束括号是用div包裹,所以就发生换行了,要想放在一行,那么只能把逗号也放在括号div里: case '...mouseout事件来处理,具体实现就是mouseover事件里获取当前鼠标滑入元素最近一个类名为.row祖先元素,然后给它添加高亮类名,为了能清除上一个被高亮元素,我们还要增加一个变量把它保存起来

37110

tp5(thinkPHP5)框架连接数据方法示例

本文实例讲述了thinkPHP5框架连接数据方法。分享给大家供大家参考,具体如下: 1、配置文件目录 tp5\application\database.php 通过配置文件来连接。。...也可以通过方法链接 控制器里方法链接数据库 ;查询时写法 使用系统DB类方法略有差异 // 使用方法配置数据库连接 public function data1 () { $DB...,,,,使用系统DB类方法略有差异 $data = $DB - table("uu") - select(); dump($data); } 2.基本使用 、 增删改查 控制器使用配置文件连接数据库...public function data() { // 实例化数据库系统类 $DB = new Db; // 查询数据,表名为uu所有数据 $data = $...thinkPHP相关内容感兴趣读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter

1K31

前端基础-JavaScript综合案例

第7章 综合案例 整体思路: 先玩几次,思考大概实现思路; 1:创建基本静态页面; 2:让div动起来 3:动态创建Div 4:动起来后,填补缺失div 5:随机创建黑块 6:绑定点击事件 7:点击判断输赢...8:游戏结束限制处理 9:黑块触底处理 10:加分 11:加速 注意变量作用域this指向问题 insertBefore、firstChild、getComputedStyle、appendChild...// 创建一个div节点对象 var div = document.createElement('div'); // 根据传入值,创建不同class属性...this.clicks = function(){ // 因为在其他作用域中要使用本对象, // 防止this指向冲突,将this赋值给一个变量...,this.main.firstChild); // 并重新隐藏一行 this.main.style.top = '-100px';

54420

Thinkphp5框架ajax接口实现方法分析

分享给大家供大家参考,具体如下: 前一篇讲到thinkphp5从数据库获取数据之后赋给视图view ,前一篇从数据渲染方式来说是服务端数据渲染,这一章则是浏览器端数据渲染。...此外状态304表示请求资源并没有被修改,可以直接使用浏览器缓存版本。 至于为啥是大于200是出于兼容性考虑,有的浏览器会报告204。...后端代码如下,后端代码是同一个模块index下一个控制器下indexapiapi方法。 <?...更多关于thinkPHP相关内容感兴趣读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI...(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

91720

基于HTML5打造一款别踩白板小游戏

背景简介 别踩白板这个游戏相信大家都玩过,这个是基于HTML5打造简单小游戏,PC端移动端都能够运行,适应多种平台,今天我们使用原生JS搭配JQuery构建这个小游戏--别踩白板。...这里存放颜色数组不需要白色,每一个初始化出来方块不设置背景颜色,它默认是白色; 2.3.1创建一行div元素 前面我们说过,一行是四个方块,比例大方块一样(3:2),它长宽是:{width:...100px ; height: 150px}; function cDiv() { var oDiv = document.createElement('div');// 获取一个随机数将一行找到一个随机...('div'); oDiv.appendChild(iDiv); // 将每一个div插入一行 } if (main.childNodes.length...总体来说首先我们需要设置好游戏界面大致结构样式,然后通过原生js控制方块产生移动,以及点击等等,最终才呈现了一个合适完整界面效果;感兴趣小伙伴可以去试一下

1.1K10

Thinkphp5框架实现图片、音频视频文件上传功能详解

本文实例讲述了Thinkphp5框架实现图片、音频视频文件上传功能。分享给大家供大家参考,具体如下: 首先是同步上传,最为基础上传方式,点击表单提交之后跳转那种。如下前端代码 <!...,于是改进了前端代码,并且前端代码实现了文件类型校验,将同步改为ajax异步提交,同时改为formdata提交文件数据,后台代码没有太大变化,返回了提交文件链接,而前端预览只能预览图片。...id="test" </div <button id="btn" 点击上传</button <div <img src="" id="see" </div <script...整体实现就是这样,作为一个常用业务场景,这个本身还有很多改进余地,比如删除已经上传文件或者校验文件是否已经上传,如果上传不能二次上传或者删除掉前面上传。...更多关于thinkPHP相关内容感兴趣读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI

1.1K10

TP5框架实现自定义分页样式方法示例

本文实例讲述了TP5框架实现自定义分页样式方法。分享给大家供大家参考,具体如下: 1. extend\目录下创建page目录,page目录下创建Page.php文件,将以下代码放入文件。 <?...(), $this- prev(), $this- getLinks(), $this- next(), $this- last(), $this- info() ); } } } /** * 生成一个可点击按钮...'</p '; } /** * 生成一个激活按钮 * * @param string $text * @return string */ protected function getActivePageWrapper...修改 application\config.php 配置文件即可 //分页配置 'paginate' = [ 'type' = 'page\Page',//分页类 'var_page...更多关于thinkPHP相关内容感兴趣读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI

68930

vue新春游戏-年兽大作战,欢欢喜喜过大年(可在线体验)

菜单 布局方面就不说了,这里简单说一下我菜单生成时思路,因为给菜单添加鼠标滑过点击音效,所以用v-for循环数据方法比较好,要不然鼠标事件就要写好几遍。...首先,我们需要梳理一下弹幕需求和注意点 弹幕横向纵向不能重叠 两天弹幕之间间隔最好可以随机 弹幕超出屏幕要自动移除 首先说弹幕不能重叠问题,弹幕纵向不能重叠的话,我们就需要有一个弹道概念,也就是让一条弹幕都有自己轨道...,然后把这些弹道序号放进一个数组,开始时直接从这个数组去取编号,往这个弹道放进去一个弹幕,然后循环,直到一条弹道都被用完为止,那么问题来了,这时候我们每条弹道只有一条弹幕,怎么生成后续弹幕呢,这里思路是一条弹幕移动时候...,方便用户查看选择,已经结束,则展示屏幕左侧,方面用户查看分享。...游戏结束 游戏结束将展示游戏成绩,并从用户祝福随机抽取一条进行展示 到这里整个游戏就完成了,由于篇幅有限,确实无法将每一个细节讲解详细,如果有朋友对哪里有问题,欢迎评论区进行提问或者前往github

61810
领券