系统名称:阔老板
核心语言:Javscript Node.js
阔老板 Node.js JavasSript服务框架是为了简化企业级应用敏捷开发而诞生的,快速实现云函数计算,遵循Apache2开源协议发布。
秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。(前后端统一编程)
微信号:kuosoft
证书号:软著登字第7825831号
官方网址:https://www.kuosoft.com
开源代码协议 Apache License 2.0 详见 http://www.apache.org/licenses/
因业务调整,后续将转JavaScript工作 阔老板顺势而生
自带后台管理系统
最大特色:云JavaScript CMS框架,支持阿里云(函数计算),腾讯(函数计算), 本地运行
前端以 layui , jquery 为基础
原创前端快速表单函数,jsfrom 快速生成表单修改新增数据!
极简路由模式,根据url访问对应的类调用对应的函数!
每个功能以插件形式集成,使得每个插件都是相互独立,又能相互关联,强大又灵活!
特有的插件函数 Construct 没有找到的类函数,直接会调用这里,方便开发多功能系统!
特有的url只能以小写函数名访问 , 大写函数名只能通过内部调用!
总结:小巧,灵活,强大,方便,支持云的Javascript框架
新增websocket 和 udp 本地通信
npm install 安装依赖
/config/kuo.sql 倒入数据库
config/KuoSoft.com.js MYSQLconfig 配置数据库
WZHOST CDNHOST 运行网址
Http 运行环境
开发执行 node build.js br 运行和生成组合代码
运营执行 node kuoServerLess.js
访问后台 /@/admin/ 管理账号 admin 密码 qqqqaa
链接: https://pan.baidu.com/s/1fAy93oYvbniKvYwJfV6pTg
密码: l5ad
导入插件文件 执行 node build.js br
到 管理后台 插件管理 输入插件名字 本地安装 即可
登陆账户系统
支付订单系统
免签系统
WebSocket 支持
学习模版一套
kuo.js 核心代码路由拆分
build.js 打包工具 node build.js br Controller 所有代码打包在一起
生成 kuo.bin 字节码CMS主程序,保护系统源码
生成 kuoServerLess.js CMS主程序
README.md 说明文档
package.json 支持依赖 npm install 进行初始安装
LICENSE Apache License 2.0
/config/系统配置文件和风格模版
/Controller/ 系统核心类函数
/temp/ 缓存文件夹 本地运行需要
/www/ 网站静态资源目录
node guard.js 守护主进程
kuosoft.txt 守护启动一行一个
location ~ ^/(Tpl|attachment|favicon.ico) {
root 程序目录/www;
}
location ~ ^/(Tpl|attachment|favicon.ico)(.*) {
alias 程序目录/www/$1$2;
}
location / {
proxy_pass http://127.0.0.1:801/;
proxy_set_header Host $host:$server_port;
}
KuoSoft.com.js 系统配置文件详细看注视
1.ttf 图形验证码字体
kuo.sql 数据库 初始运行需要倒入系统
/admin/index.html 管理后台模版
key.key key.pem 本地https 证书演示
Kuo_admin.js 管理后台
/admin/* 管理后台操作方法
Kuo_Cache_Cache.js 系统基础类:本地 kv缓存临时
Kuo_Cache_CacheFile.js 系统基础类:本地 kv缓存单文件
Kuo_Cache_FileCache.js 系统基础类:本地 kv缓存多文件
Kuo_Cache_Memcached.js 系统基础类:Memcached kv缓存
Kuo_Cache_MongoDB.js 系统基础类:MongoDB kv缓存
Kuo_Cache_Mysql.js 系统基础类:Mysql kv缓存云函数使用居多
Kuo_Cache_Redis.js 系统基础类:Redis kv缓存
Kuo_TPL.js 系统基础类:模版引擎 采用layui 中的 laytpl
Kuo_Tools.js 系统基础类:常用工具类函数
Kuo_Mysql.js 系统基础类:mysql 操作类
Kuo_UP_Aliyun.js 系统基础类:阿里云对象储存
Kuo_UP_Tencent.js 系统基础类:腾讯云对象储存
Kuo_UP_Qiniup.js 系统基础类:七牛对象储存
Kuo_UP_KuoFile.js 系统基础类:本地上传文件处理类
XmlJx("xml解析"); xml解析
strtolower("字符串"); 转换为小写
json_encode({}); JSON压缩
json_decode({}
); JSON还原
is_array([]); 判断是不是数组对象 不是字符串即是真
implode(",",[]); 根据字符数组相连
explode(",",""); 根据,拆分为数组
str_replace([],[],""); 字符替换
strpos("kuosoft.com","kuo"); 字符包含判断
await jiaqian($uid , $type , $money , $integral , $currency , $data , $ip , $plugin , $sql )
调整用户货币 $uid=用户id $type=日志分类 $money=余额 $integral=积分 $currency=货币
$data=详细记录 $ip=用户ip $plugin=插件名字 $sql=sql事务可以链接上面sql一起执行
strtotime("2020-01-01"); 时间转时间戳
pichttp("图片地址"); 图片地址转换 自动增加前缀
Md5(""); md5 签名
Kuomm(""); 密码算法
POST(post,k,v); 云函数用于拆分post
MODE(类实例,是否只克隆一次); 克隆类实例
Mode("类名字",{}); 调用类和传递参数
MkDirs(""); 创建目录
DelDirs(""); 删除目录全部文件
LTrim("kuo","k"); 字符左删除
RTrim("kuo","o"); 字符右删除
Trim("okuo","o"); 两边删除
await db("表名字"); 申明开始处理哪个表
await GET("url",{}); get 请求和参数 request
await POST("url",{}); post 请求和参数 request
await Kuolog($baio, $id , $type , $data , $mode , $plugin , $ip ) 日志记录
$baio=[ adminlog || userlog 可选] $id=用户id $type=日志类型
$data=日志详情 $mode=函数名字 $plugin=插件名字 $ip=ip
KuoLink([],1); 自动组合生成链接 第二参数 1 默认带后缀 2 不带
KuoSecurity(); url 安全过滤
reset([]); 取数组第一个值
count([]); 统计个数包括对象
await Kuoconfig("名字", 0 ); 读取通用配置名字, 缓存规则 0 默认读取 1 更新 2 删除
await Kuoplus("插件名字", 0 ); 读取插件数据里信息, 缓存规则 0 默认读取 1 更新 2 删除
await Uid("用户id", 0 ); 读取用户数据, 缓存规则 0 默认读取 1 更新 2 删除
await Adminid("管理员id", 0 ); 读取管理员用户数据, 缓存规则 0 默认读取 1 更新 2 删除
SJ(小,大); 生成随机数字
VCODE(sessionid); 生成图形验证码
Upload(biao,files); 处理上传文件 biao 接收name files 接收列表
callback(request,context); 核心 路由分配
详细配置 config/KuoSoft.com.js
MemClass = Mysql 单个可选 [Cache CacheFile FileCache Mysql Memcached Redis MongoDB]
MemClassConfig = 配置详情
Cache 可以不需要
Mysql {dbname:"memcached"} 数据库名字
CacheFile {dbname:"CacheFile"} 独立数据文件 带保存 temp 下
FileCache {dbname:"File"} 分散数据文件 后缀 保存 temp 下
Memcached {dbname:"memcached",Server:["127.0.0.1:11211"],options:{timeout:1000,poolSize:50}}
Redis {dbname:"Redis",Server:6379,options:{}}
MongoDB {dbname:"memcached",Server:"mongodb://127.0.0.1:27017"}
统一操作
await Mem.Get("key"); //获取值
await Mem.Put("key","值支持对象更新部分","时间"); //更新值 可以只更新时间 时间0不过期
await Mem.Set(key,value,"时间");//设置或者新增值
await Mem.Add(key,"默认值1",time);//增加值 支持时间过期
await Mem.Cut(key,"默认值1",time);//减少值 支持时间过期
await Mem.Del(key);//删除
await Mem.Flush(key);// key 为空清理全部 不为空删除包含关键词
.Time() 返回时间戳
.Mulu(""); 返回目录
.Fenye:( $MEYE , $TOTAL ,$GESHU, $PAGE,$URLQ,$URLH ) 前端html分页
$MEYE=每页个数 $TOTAL=总数 $GESHU=分页按钮个数 -1 只有上下页
$PAGE = 当前页码 $URLQ=组合链接page前 $URLH=组合链接page后
.TIQUimg("html内容图片",下标); 默认返回所有图片数组 带下标提取第几个
.Int(""); 强行转int
.Xss("");Xss 过滤
.GUoLV("");过滤..文件路径处理
.Uuid(); uuid 生成
.Date(fmt,shijia) 根据 Y-m-d H:i:s ,时间戳 格式化
.UTC() UTC 时间用于浏览器返回处理
.SetCookieTiem() 生成cookie 过期时间
支持连续操作
let $DB = await db("admin"); 需要操作的表
let data = await $DB.Where({}).Order("").Limit(数量,页码).Find();单个查询
let data = await $DB.Where({}).Order("").Limit(数量,页码).Select();多个查询
let data = await $DB.Where({}).Order("").Limit(数量,页码).Update({});更新
let data = await $DB.Insert({}); 插入
let data = await $DB.Where({}).Total();//获取总总数
let data = await $DB.Qurey("sql 语句 ??表 ?字段 ",[]);原声执行操作
事务操作 $DB.SetShiwu(true);后面 修改删除插入 都会返回sql 语句
$DB.ShiWu("事务sql"); 执行事务
辅助类
$DB.ZhiCha("只查询的字段").Select(); 只查询需要的字段
$DB.PaiChu("不需要的字段").Select(); 不需要的字段
$DB. Wherezuhe({}); 返回组合后的 where 语句
$DB = await $DB.SetTable("更改选择的表"); 同一个db 执行
每次 db("")都会是一个新的链接 连续操作的直接进行SetTable 切换表
新增后台管理网关和统计
多网关 websocket + 后端多业务 udp 通信
数据打包采用 msgpack-lite
/config/KuoSoft.com.js 配置参数
global.WSS = true;//网关开启
global.WSPingTime = 70000;//ping 间隔时间
global.GATEID = 1; //后台 网关管理 网关id
global.Debug = true;//调试模式会看到通信数据运营模式注意关闭
node build.js br Bat_login 网关id 启动一个测试后端
Bat_login 列子后端
7456 udp端口
其他后端建议复制 Bat_login 后重命名
运营模式
global.Debug = false; //调试模式关闭
node build.js br
node kuoServerLess.js @@game Bat_login 网关id
后端接收的参数
DATA_["EE"] = 来自那个fid;
DATA_["EB"] = 来自哪个网关;
DATA_["EU"] = 用户id ;
DATA_["ER"] = 角色id;
DATA_["ip"] = 用户Ip
DATA_["E"] = 动作 「Online 上线通知 Dropped 掉线通知 其他自定义」
DATA_["L"] = 内容
发送给网关
E = SETUP //设置用户的信息
L = {U:-1,R:-1,Q:-1}
U 用户id -1初始化 0 不变 其他对应值
R 角色id -1初始化 0 不变 其他对应值
Q 游戏区 -1初始化 0 不变 其他对应值
例入: THIS.FASONG_(DATA.token,"SETUP",{U:0,R:0,Q:THIS.ServerId});
其他消息发送
发送目标 可选值「
DATA.token
0 全服
-1 本服
[角色的id,角色的id,角色的id] 数组多人通信
」
内容小数据发送 THIS.FASONG_(发送目标 ,动作,内容 );
例入: THIS.FASONG_(DATA.token,"MSG","欢迎使用阔老板");
内容大数据发送系统会自动分包 THIS.FASONG(发送目标 ,动作,[内容,内容] );
例入: THIS.FASONG(DATA.token,"map",["内容",{aa:""}]);
通信地址:ws://服务网关/KuoSoft.com
例入: ws://127.0.0.1/KuoSoft.com
断线重新链接部分
onopen 后 发送 {Kuo:本地储存通信uuid }
会立马收到当前的通信uuid注意更新
客服端注意传输打包数据使用下面即可兼容小程序
try {
let buf = msgpack.encode(wenzi);
if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
ws.send(buf.buffer);
} else {
ws.send(buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength));
}
}catch (err) {}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.