代码改变世界

随笔分类 -  php

【物联网篇】PHP通过Modbus Tcp实时获取设备数据

2021-05-30 14:24 by 北桥苏, 3224 阅读, 收藏, 编辑
摘要: 前言: 最近接触了一个关于PLC工控的小项目,大概场景是,对方一个茶叶工厂。已经通过各种设备组成了自动化的工控系统。并且也让我的一个朋友做了茶园监控和茶园天气环境等的web页面展示,但是还没有工控设备的数据显示。 需求: 工控设备已经连接到了一台作为上机位的电脑上,所以要获取设备数据。需要在同一局域 阅读全文

Windows下MQTT代理服务器的搭建

2021-03-17 18:30 by 北桥苏, 929 阅读, 收藏, 编辑
摘要: 前言: 最近小编在折腾Arduino,为了让板子联网又买了ESP8266 NODEMCU (wifi模块,也是一个单片机)。虽然能通过烧录的程序通过http请求自己的服务器接口,但是显然并不符合当下主流的物联网方式,并且定时请求接口还浪费资源。 于是就引出了MQTT协议,在网上我也找了关于MQTT代 阅读全文

关于使用elascticsearch的两个小技巧

2021-02-09 17:29 by 北桥苏, 138 阅读, 收藏, 编辑
摘要: 前言: 之前也有讲到过es的基本使用,主要是通过PHP代码对es索引,文档等的增删改以及搜索优化的解决方案。而现在为了进一步满足搜索的全新功能,所以就需要一个中文分词器,而为了方面查看或管理es文档,可以使用图形化面板。所以接下来主要介绍es中文分词器的安装和es的web面板。 elasticsea 阅读全文

解决easyswoole的swServer_start_check: onTask event callback must be set at报错

2021-02-03 19:22 by 北桥苏, 322 阅读, 收藏, 编辑
摘要: 最近运行了一下之前用easyswoole写的一个爬虫的demo,却发现启动直接报错。swServer_start_check: onTask event callback must be set at,大致的意思是没有设置onTask事件。因为easyswoole是个框架,遇到这种问题真不好排查。 阅读全文

解决使用宝塔安装的swoole扩展,运行项目出现的3个常见问题

2021-01-19 14:19 by 北桥苏, 1833 阅读, 收藏, 编辑
摘要: 测试性的启动一下。php easyswoole start,却出现 PHP Warning: Module 'swoole' already loaded in Unknown on line 0。 Swoole\Process::__construct() expects at most 3 parameters, 4 given。 错误也指出了文件错误的详细地方,提示是说那个类的构造函数应该是传3个参数,但是现在却传了4个。 阅读全文

浅谈一下ThinkPHP5.1实现事务嵌套的特性

2021-01-18 16:45 by 北桥苏, 1063 阅读, 收藏, 编辑
摘要: 前言: 在我们平时做的一个项目中,线上环境突然发现数据库被锁住。导致很多有关数据插入和修改的接口全都瘫痪,项目基于ThinkPHP5.1。报错的时候,我们发现了一条sql错误日志,如下。 根据错误信息提示,是说有一个事务回滚时没有找到savepoint 的暂存点。所以问题应该是事务嵌套导致的,目前T 阅读全文

websocket测试工具的环境搭建与使用

2021-01-12 11:29 by 北桥苏, 865 阅读, 收藏, 编辑
摘要: 前言: 因为要测试自己的websocket项目,所以我决定使用jmeter进行测试联调。尽管也有在线ws调测的网站,但是jemter相对这些,他可以流程化测试,并且脚本自动运行,性能分析等等。 软件: 1. jmeter最新包。 2. jdk包。 3. JMeterWebSocketSamplers 阅读全文

白鹭游戏引擎网络棋牌搭建步骤

2020-12-18 16:01 by 北桥苏, 1274 阅读, 收藏, 编辑
摘要: 前言: 项目是一个游客登录型的棋牌联网游戏,前端是白鹭引擎,后端PHP开发。分为登录和获取基本信息的Http层和websocket通信的游戏层。后台需要有一个分布式网关服务器(php游戏网关)。以下为了搭建更快捷,使用宝塔进行操作,前提已经通过宝塔安装完毕了LNMP。 资源: 源码地址: https 阅读全文

PhpOffice实现Excel表格导入的解耦方法

2020-12-18 14:34 by 北桥苏, 313 阅读, 收藏, 编辑
摘要: 前言: 在业务中开发中,表格的导入导出功能很常见。但是这里主要是使用PhpOffice类库介绍实现导入表格数据的功能。 冲突: 大部分的导入功能,就是通过点击按钮上传一张表格,然后后台读取表格数据根据业务整理后直接插入到数据库,最后再返回给前端。但是如果表格数据庞大,业务逻辑复杂的时候,就会导致导入 阅读全文

代码实现RabbitMQ死信队列的创建

2020-10-25 14:20 by 北桥苏, 655 阅读, 收藏, 编辑
摘要: 前言: 之前有写过死信队列的使用场景以及通过管控台创建死信。这次就通过代码实现死信队列的创建,同时也分享一下RabbitMQ封装的类。 准备: 1. 先准备一个死信队列(最后用来消费)的参数配置,包括虚拟机,交换机,队列,有效时间等,如下。 2. 按照上面在RabbitMQ中创建虚拟机和交换机,死信 阅读全文

PHP如何通过rabbitMQ死信队列实现业务的延时/定时操作

2020-10-09 20:15 by 北桥苏, 1881 阅读, 收藏, 编辑
摘要: 前言: 之前也通过文章介绍过rabbitMQ的搭建以及在PHP开发场景下的一些使用。这个主要从rabbitMQ的web控制台介绍死信队列的操作,以及代码层面的小应用等。关于死信的原理,rabbitMQ的特性等可以在其他文章中找到,这里就不详细介绍了。 场景: 死信的场景主要是用于来实现延迟队列,比如 阅读全文

以PHP门面模式实现简单的邮件发送

2020-08-31 19:31 by 北桥苏, 321 阅读, 收藏, 编辑
摘要: 前言: 门面模式属于设计模式中三大分类之一的结构类型,也叫外观模式。其作用对客户端低耦合底层功能的封装,客户端不用知道子系统间的调用。 举例: 门面模式就相当于电脑主机,用户要打开某个应用程序,只需要知道两步。打开开机按钮,电脑开机后再打开应用。开机按钮就相当于一个门面,里面的开机需要调用不同的模块 阅读全文

搜索接口优化方案——幂集分词表

2020-08-28 15:35 by 北桥苏, 277 阅读, 收藏, 编辑
摘要: 前言: 在业务开发中,有一些面向C端的搜索接口。比如根据商品名搜索,之前也提过通过ES解决,但这次主要以一种较为简单快捷的方式优化搜索速度。 思路: 1. 通过程序将所有商品名进行分词并幂集组合。2. 将所有商品名称幂集存入一张单独的表中。3. 每个分词对应一个商品ID。4. 搜索关键词对幂集表的分 阅读全文

宝塔中极速安装的PHP如何使用AMQP连接RabbitMQ

2020-07-31 19:21 by 北桥苏, 1493 阅读, 收藏, 编辑
摘要: 前言: 有些人为了让项目快速上线,服务器往往安装宝塔面板,然后再极速安装LNMP。尽管环境搭建的时间省了,但是宝塔上PHP中扩展包没有提供AMQP。这时候只是为了使用消息队列而对PHP大动干戈, 不如使用一个PHP AMQP的库,即用即装,不对环境造成影响。 简介: php-amqplib 客户端库 阅读全文

phpstorm开发项目中5种常用的使用方法

2020-07-07 14:51 by 北桥苏, 706 阅读, 收藏, 编辑
摘要: 前言: 有时因为各种原因重装了系统,工具有时也重装,但是又没有把软件的设置导出来。最开始的工具配置过了段时间给遗忘了,比如平时顺手的关闭窗口快捷键,composer,git等的设置。 方法总结: 1. 修改快捷方式 点击”File”->”Settings”->”keyMap” 就可以看到那些快键键的 阅读全文

PHP高并发高负载下的3种实战场景解决方法

2020-06-24 11:06 by 北桥苏, 702 阅读, 收藏, 编辑
摘要: 前言: 在实际开发项目中,产品一旦推广开来,总能遇到一些小问题。比如某个接口突然就请求崩掉了,某个提交接口明明做了限制为什么就多出了好多重复的记录。还有是某个记录超过限制进行修改了,以下就以这几个小问题总结一下平时采取的解决方法。 场景: 1. 缓存失效场景,就比如某个接口做了数据缓存,缓存过期导致 阅读全文

OSS云文件列举分页功能的解决方法

2020-06-04 09:57 by 北桥苏, 999 阅读, 收藏, 编辑
摘要: 前言: 目前项目开发中上传功能很多都是使用云存储,其好处太多这里就不列举了。但是在上传成功后,有些功能场景下需要对存储桶内的文件进行管理。自然把历史的文件列表展示出来就很有必要了。然后有列表就有分页,云存储又不像本地存储直接读文件夹就可以,所以我想了两种方法来解决。 方法: 1. 将上传的文件返回的 阅读全文

PHP快速使用RabbitMQ实现项目中部分业务的解耦

2020-05-22 15:16 by 北桥苏, 545 阅读, 收藏, 编辑
摘要: 前言: 上次介绍了RabbitMQ在windows下的安装,以及PHP的AMQP扩展的添加。这里将本地测试的代码放到了服务,所以也就是在Linux上再装一遍。但是这里就省掉直接进入使用。主要是RabbitMQ安装完毕后,管控台的使用以及在PHP中如何调用其接口实现消息的生产和消费。 步骤: 1. L 阅读全文

个人如何搭建Rtmp服务结合uni-app开发直播APP

2020-05-20 09:37 by 北桥苏, 415 阅读, 收藏, 编辑
摘要: 前言: 由于自己有一个IM类的应用,为了完善它所以决定也加上直播和短视频功能。做直播目前有两种方法,一是直接对接第三方的直播服务产品,二是自己搭服务再开发。所以这里也从这两个方法推荐简单的实现方式,阿里云和腾讯云之类的大厂产品就不安利了。(公众号回复“直播”获取源码) 选型: 1. 第三方,PHP+ 阅读全文

搜索接口优化方案——elasticsearch分布式搜索引擎的基本使用

2020-05-17 13:50 by 北桥苏, 488 阅读, 收藏, 编辑
摘要: 前言: 在开发项目中一般都会有搜索功能。如果是面向C端的搜索功能,往往都特别考验性能。比如普通的商城系统中的商品搜索或者一些资源的站内搜索。 可能以前的做法就是对商品表做一个按名称或商品描述做模糊查询。更好一点的是对搜索关键字进行分词,并且专门建一个搜索词库表。不过前期需要对搜索词进行拆解然后幂集组 阅读全文
点击右上角即可分享
微信分享提示