基于 Swoole 构建高性能 Laravel 应用系列 —— 在 Laravel 中集成 Swoole 实现 WebSocket 服务器

在上篇教程中,我们基于 Swoole 实现了简单的 WebSocket 服务器,然后在客户端通过 JavaScript 实现了 WebSocket 客户端,并演示了 WebSocket 的握手和通信过程,今天,学院君将基于 LaravelS 扩展包把 Swoole 集成到 Laravel 项目来实现 WebSocket 服务器,以便于客户端进行 WebSocket 通信从而实现广播功能。...

Leetcode PHP题解--D68 283. Move Zeroes

D68 283. Move Zeroes 题目链接 283. Move Zeroes 题目分析 给定一个整数数组,将值为0的元素移动到数组末尾,而不改动其他元素出现的顺序。 思路 计算总共有多少个元素。 再在去0后的元素末尾填充0到计算出的数组长度。 最终代码 ...

基于 Swoole 构建高性能 Laravel 应用系列 —— 基于 Swoole 实现简单的 WebSocket 服务器及客户端

WebSocket 概述 这篇教程取自社群分享程序员内功修炼系列网络协议篇,其中对 WebSocket 协议的由来、实现原理和通信演示有详细介绍,这里我们仅取中的简单实现篇来介绍,因为在那里也是基于 Swoole 实现 WebSocket 服务器的。 在此之前,有必要对 WebSocket 的原理做简单的说明,WebSocket 复用了 HTTP 协议来实现握手,然后通过请求报文中的 U...

Leetcode PHP题解--D67 485. Max Consecutive Ones

D67 485. Max Consecutive Ones 题目链接 485. Max Consecutive Ones 题目分析 给定一个二进制数组(只含有0和1的数组),返回最长的1串。 思路 逐个遍历,若为1则计数。遇到0则判断当前计数是否大于之前记录的最大数字,并置零。 返回最大数。 最终代码 ...

在 Laravel 项目中集成 Swagger 扩展包为 Laravel API 生成接口文档并对接口进行测试

除了上篇介绍的 API 文档生成器扩展包之外,我们还可以基于著名的 Swagger 在 Laravel 项目中为 API 接口生成文档。 Swagger 是一个开源的、用于简化 API 开发的工具集,这些工具集涵盖了 API 开发的整个生命周期,从设计到文档、从测试到部署。 Swagger vs OpenAPI 在介绍基于 Swagger 工具集生成 API 文档之前,我们有必要先了解下...

Leetcode PHP题解--D66 896. Monotonic Array

D66 896. Monotonic Array 题目链接 896. Monotonic Array 题目分析 给定一个数字数组,判断是否单调递增或递减。 单调递增即,对于第n位数字,其后面的数组都大于或等于它。 单调递减则为,其后面的数组都小于它。 思路 先要找到头两个不同的数字,用来判断该数组是单调递增还是递减。 判断后,再逐个遍历。若为单调递增,那么不能存在小于前一个数字的值。若为...

Leetcode PHP题解--D65 892. Surface Area of 3D Shapes

D65 892. Surface Area of 3D Shapes 题目链接 892. Surface Area of 3D Shapes 题目分析 给定一个三维数组,返回所行程柱状体的表面积。 思路 三维数组中,$arr[$i][$j]的值表示在该点上柱状体的高度。 因此,对每一个值,需要算做6份(1*1*1)的面积。但是,当上方或下方有块时,需要减去相应面积。 当相邻位置有方块时,...

Leetcode动态规划之PHP解析(120. Triangle)

2019-5-18 星期六  开始吧上一题链接: Leetcode动态规划之PHP解析(70. Climbing Stairs)动态规划题第二天题目描述给定一个三角形,好吧,其实就是一个二维数组,让我们求从上至下的最小路径和,往下一层,你只能移动相邻之间的两个数。题目解析还是使用动态规划的两个步骤。1.定义好状态2.求出递推的公式。递归和动态规划有一个不同的地方就是递归是自上而下,比如在...