解决win11使用ja-netfilter.jar后无法启动问题 问题运行pycharm安装目录下的bin\pycharm.bat报错 Exception in thread "main" java.lang.ExceptionInInitializerError at fuck_the_regulations_v321.H.<clinit>(H.java:38) at java.base/ 2023-03-28 #pycharm
骰子游戏之大话骰 介绍基于webman和vue实现的大话骰游戏 项目地址https://github.com/d2gin/liars-dice 演示地址https://liars-dice.icy8.net 游戏规则开始游戏时,各玩家可以摇骰(系统会自动摇一次),然后自己看骰盅里面的骰子,不让其他人看到。首局房主先“叫”,按顺序轮到下一家。叫骰起步个数为总玩家数的1倍,如4个人即4个起叫,6个人即6个起叫。下一家需 2023-03-25 #workerman #开源 #webman
docker容器:lnmp环境 介绍基于docker容器的lnmp开发环境 开源仓库:https://github.com/d2gin/docker-lnmp-dev 配置version: "3" services: php: container_name: dev-php build: ./php-fpm/ restart: always links: - mysql 2023-02-27
使用golang协程并行下载m3u8视频 背景最近在追剧,网上的影视资源非常卡,看两秒卡七八秒,很多做盗版资源的网站都是接了一些乱七八糟的接口,导致观影体验极差。观察后发现是m3u8资源,索性一次性下载到本地离线看。 方案 php+多进程 golang+协程 方案一将ts文件列表逐一写入redis列表,然后通过多进程来竞争这个列表数据,从而实现进程的数据共享和并行下载。这个方案只适用于linux环境。 安装依赖: # 这是一个多进程模型 2023-02-07 #golang #协程
基于websocket实现画板共享 前言通过即时传送画笔信息可以实现画板共享。 项目https://github.com/d2gin/share-canvas 介绍 后端不需要数据库,只做简单示例。 前端通过存储画笔轨迹,实现撤销、恢复和实时共享画板的功能。 可以魔改成“你画我猜”小游戏。 截图 2022-12-21 开源 #workerman #websocket
workerman平滑重启原理 前言只针对linux下的重启解析,windows下没有重启和平滑重启的策略。代码区域只展示方法名称和部分的代码片段,完整代码需要自行参阅workerman项目。下述的名词“主进程”和“父进程”是同一个意思。 梳理流程 命令入口:php workerman.php reload -g 进入\Workerman\Worker::parseCommand(): case 'reload': 2022-11-05 #linux #多进程 #workerman
通过rsync一键同步博客静态文件 背景每次更新完资源后都要手动把静态文件拉到服务器,持续这个操作两年后开始感觉繁琐了。 方案 svn hook:服务端做一个webhook,webhook收到svn的通知事件时在服务器执行一次svn checkout。这个方案相对复杂,而且需要配合svn做一个webhook,不想折腾。 上传单页:逻辑不复杂,要做一个小应用,还是不想折腾。 rsync:这是最近听说的一个shell工具,只需要写一个s 2022-11-04 技巧 #shell #rsync
手写简化版workerman,剖析其原理 前言workerman的最大特色就是基础功能不依赖额外扩展,使得这个框架可以在windows和linux系统中完美运行。其次就是workerman的学习成本极低,只需要会用php写回调就能灵活操控这个框架,对进程和网络相关的知识捆绑不是很高。 项目https://github.com/d2gin/socketman 原理<?php $host = 'tcp://0.0.0.0:996'; 2022-10-20 开源 #workerman #socket #tcp