自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

水果糖的博客

水果糖的网络开发之路

  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 cfadmin - 编写高性能服务端、客户端实例(3)

阅读本文需要读者至少有C/C++网络编程基础, 并且了解基本的Socket API是如何使用的.同时需要读者至少使用过cfadmin框架、并且能熟练使用内置库来完成简单的业务逻辑编写.对本文有兴趣的同学也可以从官网与文档来了解更多关于框架的更多使用方法.测试准备1. 硬件清单名称型号内容数值CPUIntelI5-104006核12线程MEMMicronDDR4-266616GOSWSLLinuxKernel 5.4EditVSCODE

2021-11-19 11:30:53 993

原创 cfadmin - 编写高性能服务端、客户端实例(2)

阅读本文需要读者至少有C/C++网络编程基础, 并且了解基本的Socket API是如何使用的.同时需要读者至少使用过cfadmin框架、并且能熟练使用内置库来完成简单的业务逻辑编写.对本文有兴趣的同学也可以从官网与文档来了解更多关于框架的更多使用方法.数据的传输上一章节笔者与大家一起学会了如何建立两端连接, 本章节开始我们将学会如何实现最简单的HTTP交互协议.这个作为大家最熟悉的协议, 它的全称是: Hyper Text Transfer Protocol - 超文本传输协议.它构建并运行在

2021-11-17 21:15:42 453

原创 cfadmin - 编写高性能服务端、客户端实例(1)

阅读本文需要读者至少有C/C++网络编程基础, 并且了解基本的Socket API是如何使用的.同时需要读者至少使用过cfadmin框架、并且能熟练使用内置库来完成简单的业务逻辑编写.对本文有兴趣的同学也可以从官网与文档来了解更多关于框架的更多使用方法.阅读前言cfadmin是C与Lua编写的高性能服务端框架. 虽然内置了现在Web服务, 但是还会有需要使用到原始套接字.cfadmin封装了绝大部分的Socket API, 开发者可以仅使用内部提供的Lua接口而无需考虑C/C++层面的问题.那么

2021-11-13 13:08:09 476

原创 Lua admin后台开发 (6) 模板引擎的使用

上一章节我们初步了解了如何使用模板引擎, 现在我们深入了解模板引擎.什么是模板引擎“模板引擎(这里指Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的.”“模板引擎提供特定的格式与语法, 以此为依据将模板转换为标准HTML文档.”模板引擎的适用场景适合服务端后台开发者.Lua 模板引擎admin.view库中的template方法实则为template库中的comp...

2019-10-27 23:38:03 461

原创 Lua admin后台开发 (5) 路由联动与模块化

前面的章节我们学会了如何编写一个后台页面, 现在我们深入了解如何开发路由联动页面与模块化.配置回顾local httpd = require "httpd"local app = httpd:new("http")-- httpd启用Cookie扩展app:enable_cookie()-- httpd设置Cookie加密的密匙app:cookie_secure("candymi"...

2019-10-27 04:41:08 343

原创 Lua admin后台开发 (4) 开发一个简单的后台页面

前面的章节我们学会了如何页面设置与后台使用方法, 现在我们来为我们到后台写几个简单的页面.登录后台首先我们打开登录页面后登录.添加菜单如下图所示,菜单管理添加几个页面.上面的菜单图标可以这里找到喜欢的unicode并且填入.细心的同学可能会发现: 即使我们现在添加菜单成功, 页面也没用显示刚刚我们创建的菜单栏.现在我们刷新一下当前页面就会显示已经创建成功的菜单栏.编写路由这...

2019-10-26 20:44:03 937 2

原创 Lua admin后台开发 (3) admin库的后台页面配置

上一章节我们学会了如何admin库的使用, 学习一些admin库的详细配置.回顾配置忘记配置的同学我们再来看下基础配置, 稍后我们会对下面对配置进行扩展.local httpd = require "httpd"local app = httpd:new("http")-- httpd启用Cookie扩展app:enable_cookie()-- httpd设置Cookie加密的密...

2019-10-26 19:05:04 427

原创 Lua admin后台开发 (2) admin库的后台页面介绍

上一章节我们学会了如何搭建cf框架的内置库, 现在就来熟悉一下基本后台页面吧.登录看了上一章节的同学可能已经见到了我们到登录界面, 这时候大家最想做的是什么? 没错. 空有界面无法登录是一件很难受的事.即使不明说有的同学恐怕也已经猜到了, admin库默认的超级管理员账户/密码是:admin/admin.现在, 尝试登录看看dashboard吧.Dashboard 仪表盘仪表盘应该大...

2019-10-26 18:15:50 835

原创 Lua admin后台开发 (1) 搭建admin后台管理系统

cf是一个基于Lua语言开发的后端框架, 内置admin后台管理系统.今天我们来学会如何快速搭建cfadmin后台管理系统.安装作者本人使用的平台为Mac OSX, 其它Unix Like平台同理. Windows请自行到作者github下载指定版本.1. MySQL安装下载MySQL并且启动().登录MySQL创建一个空的数据库, 数据库名称任意(例如:cfadmin)....

2019-10-26 17:07:04 1211

原创 Lua Web快速开发指南(10) - 利用MQ实现异步任务、订阅/发布、消息队列

本章节我们将学习如何使用MQ库.MQ库简介MQ库实现了各类消息代理中间件(Message Broker)的连接协议, 目前支持:redis、mqtt、stomp协议.MQ库基于上述协议实现了: 生产者 -> 消费者与订阅 -> 发布模型, 可以在不依赖其它服务的情况下独立完成任务.API介绍cf框架提供了多种MQ的封装, 当我们需要使用的时候需要根据实际的协议进行选择:--...

2019-06-25 20:50:33 671

原创 Lua Web快速开发指南(9) - 使用cf内置的异步库

API 介绍cf框架提供内置的异步库cf, 需要使用的时候我们必须先导入API: local cf = require "cf".定时器与循环定时器cf库内置了一些定时器方法, 这些方法为开发者提供了对时间事件的控制能力. cf.timeout、cf.at、cf.sleep.cf.sleep方法是一个阻塞的定时器, 只有一个参数用来设置当前协程的休眠时间并且没有返回值. 此方法的行为(语义...

2019-06-23 23:04:39 359

原创 lua web快速开发指南(8) - 利用httpd提供Websocket服务

Websocket的技术背景WebSocket是一种在单个TCP连接上进行全双工通信的协议, WebSocket通信协议于2011年被IETF定为标准RFC 6455并由RFC7936补充规范.WebSocket使得客户端和服务器之间的数据交换变得更加简单, 使用WebSocket的API只需要完成一次握手就直接可以创建持久性的连接并进行双向数据传输.WebSocket支持的客户端不仅限于浏...

2019-06-18 22:33:23 1420

原创 lua web快速开发指南(7) - 高效的接口调用 - httpc库

httpc库基于cf框架都内部实现的socket编写的http client库.httpc库内置SSL支持, 在不使用代理的情况下就可以请求第三方接口.httpc支持header、args、body、timeout请求设置, 完美支持各种httpc调用方式.API介绍httpc库使用前需要手动导入httpc库: local httpc = require "httpc".httpc.ge...

2019-06-16 18:00:47 1941 5

原创 lua web快速开发指南(6) - Cache、DB介绍

"数据库"与"缓存"的基本概念数据库与缓存是服务端开发人员的必学知识点.数据库"数据库"是一种信息记录、存取的虚拟标记地点的集合统称. 比如现实生活中, 我们经常会用到文件柜、书桌等等数据存取容器.在对容器进行数据存取的时候, 我们会为每一层打上一个标签表示一种分类项. 而这种在数据库中划分子分类形成了表的概念. 这就是我们通常所说的结构化数据库.由于通常数据表之间可能会存在依赖关系, ...

2019-06-16 01:04:51 564

原创 lua web快速开发指南(5) - 利用template库构建httpd模板引擎

介绍template模板引擎是为了使用户界面与业务数据(内容)分离而产生的, 其本身并不是一种深奥的技术.template模板引擎首先会将合法的模板编译为lua函数, 然后将模板文件和数据通过模板引擎生成一份HTML代码.cf的admin库整使使用了template来构建服务端渲染页面, 并利用单页面+iframe模式快速完成lua后台开发.1. template基础语法在真正使用之前,...

2019-06-14 15:30:16 262

原创 lua web快速开发指南(4) - 详细了解httpd库的API

httpd库是基于HTTP 1.1协议实现而来, 内置了高性能的http协议解析器与urldecode解析库.httpd库默认情况下就能工作的很好, 但是在一些需求较为极端的场景还是需要微调一下参数.httpd常用的内置方法介绍1. httpd:timeout(number)设置每个连接到最大空闲(idle)连接等待时间, 超过这个数值httpd将主动断开连接. (默认值为:30秒)2....

2019-06-14 15:29:24 365

原创 lua web快速开发指南(3) - 初识httpd库路由

本章假设您已经知道httpd server如何快速搭建, 并且知道cf的启动流程与运行流程, 知晓httpd如何创建与启动.回顾上一章节-- script/main.lualocal httpd = require "httpd"local app = httpd:new("app")app:static("static", 30)app:listen("0.0.0.0", 808...

2019-06-14 15:28:30 652

原创 lua web快速开发指南(2) - cf的运行机制简介与基于httpd库的开发环境搭建

从本章开始假设大家都熟悉lua语法.运行流程在上一章节学会了如何安装cf后, 本章节就会介绍cf到运行机制与httpd的server搭建!cf是一个非常典型的基于协程的事件驱动开发框架在封装成API后, 可以依赖事件循环执行一套稳定运行时环境.而lua本身提供了强大的table数据结构可以根据需要自行构建所谓的"config", 所以cf为了减少无用的依赖就没有提供额外的config文件进...

2019-06-14 15:27:41 524

原创 lua web快速开发指南(1) - 初识cf框架

作者: 水果糖的小铺子(CandyMi)cf是什么?cf全称为: CoreFramework. 一个基于Reactor事件驱动与协程的lua高性能网络框架, 目前主要面向HTTP Application开发.cf内部主要实现了包括HTTP与HTTP Over Websoket协议的Server, 利用轻量级协程可以很轻松保持成千上万的长连接.cf内置了丰富的开发库与常见的第三方协议, ...

2019-06-14 15:26:43 2220

原创 CentOS 6 在2020年服务到期后的备用方法.

一、维护到期官方便在2020年12月2日正式将CentOS 6相关的软件源移出了官方源, 和之前CentOS 5一样随之而来逐级镜像也会陆续将其删除。其实早2020年的中旬这一消息就已经发布但这并没有引起"重视", 毕竟还有用户使用的挂在物理镜像与私有镜像维护了在内部.二、使用问题众所周知网上有些同学还停留在CentOS 6.X版本, 并且服务器中可能还运行这一些带有历史痕迹的软件在提供一些小范围服务.这些软件对操作系统版本和内核的更新过于敏感,贸然的进行底层架构的迭代可能会对一些服务造成维护

2021-01-21 17:17:57 907

原创 Lua Web 开发(拓展篇) - 利用Nginx的rewrite完成伪静态

前言本文将给大家介绍对Lua的动态链接地址转换为伪静态页面的做法.本文仅针对不支持rest软件架构风格的web开发框架提出伪静态的解决方案.并且此方法已经在业界已使用多年, 且并不意味着技术过时或新技术的必要性. 它只是服务于一些特殊业务场景并能提供不同的解决方案.一、 测试环境名字内容环境MAC OSX 10.15.3nginxnginx/1.18.0编译器Apple clang version 11.0.0 (clang-1100.0.33.8)二、

2020-05-11 10:15:09 446

原创 MAC OSX 10.15 无痛的手动安装、配置、删除 MySQL 8.0

本文介绍如何在MAC OSX下无依赖安装MySQL 8.0.前言本文将介绍无任何依赖的MySQL开发环境搭建.环境名字内容环境MAC OSX 10.15.3版本MySQL 8.0.20CPUIntel® Core™ i7-5557U CPU @ 3.10GHz内存16 GB 1867 MHz DDR3硬盘APPLE SSD SM0 512G一、安装1. 下载 MySQL 安装包我们到这里下载MySQL安装包!这里一定要选择编译好.

2020-05-09 10:18:32 1514

原创 leetcode [1] - 在排序数组中查找元素的第一个和最后一个位置.

先看解法:#include <stdio.h>#include <stdlib.h>#include <string.h>static inline int* binarySeach(int* result, int* nums, int numsSize, int target) { int mid = (int)(numsSize / 2);...

2019-10-21 20:18:25 287

原创 为skynet的crypt库扩展一些加密(摘要)算法支持

改造起因在上篇文章, 我描述了为skynet添加稳定的websocket支持的起始并阐述了这么做的原因.这几天在测试的时候发现, 当使用skynet内置的httpc库的时候会遇见crypt缺少一些我需要用到的算法(例如: crc、sha256、hmac_sha256等等).这里完全可以假设开发者在框架选型的时候没发现这个问题, 那可能会到开发中期需要第三方平台接入或扩展不同架构的时候才可能会...

2019-07-03 05:11:32 926

原创 为skynet移植一个lua-websocke库

简介目前大部分游戏、移动互联网、H5客户端主要由JavaScript、Lua、C#、C++等语言进行逻辑开发, 其主要通讯方案便是基于HTTP协议的接口请求与Websocket的推送方案.起因skynet内部实现了一套同步非阻塞socket库, 并且提供了TCP通讯方案进行数据流分割. 所谓的TCP数据流分割. 就是根据一定方式读取数据的一种流程.最为常见的数据分割方案应该是: 2字节头...

2019-06-22 09:53:20 694

原创 Python 转换MySQL指定数据库所有表的存储引擎.

需求使用脚本修改指定数据库内的所有表单存储引擎.脚本实现#encoding=utf8import mysql.connector,re#定义一个列表,用于保存数据库内所有表的名称;tl = []#定义链接信息config={'host':'192.168.1.254' 'user':'账号', 'password':'密码', ...

2019-06-21 09:04:24 209

原创 Apache 特殊的无法启动解决方法..

#!/bin/bash#清除ipcsfor ipcs in `ipcs -s|awk '{print $2}'`;doecho "ipcs=$ipcs"ipcrm -s $ipcsdone/etc/init.d/httpd restart如果显示绿色的“OK”,则代表成功!无需再反复尝试了!...

2019-06-21 08:56:38 249

原创 Centos 大于4TB 硬盘LVM 水平扩容

环境名称属性CPUx5650内存4G磁盘20G+4TB这时候,我们假设服务器已经有如下东西:安装好了Parted(yum install parted)分区容量已经告捷,公司为服务器增加了一块4T硬盘用来增加容量!除了/boot分区外,其余都为LVM 模式的扩展逻辑分区软件安装与信息查看首先查看软件是否安装:[root@...

2019-06-15 12:26:30 2799

原创 Linux unzip从压缩文件中解压出单个目录或文件

相信很多同学都遇到过这样一个问题:我的冷备份压缩包高达几十上百G, 当我不小心删除了某个文件需要恢复的时候. 需要解压全部文件. 有没有办法加速这个动作?为了几MB的文件解压所有打包这个这个动作肯定是不可取的, 那么unzip提供了这个操作么?是的, unzip确实提供了这个选项. 现在请记住下面的伪命令:`unzip <Your zip file> "*mobile/要解...

2019-06-15 12:07:52 11843 2

原创 MySQL 快速将不连续ID修复为连续

MySQL 表内的数据不连续情况可能有以下原因导致:insert语句不管是否成功,都会增加AUTO_INCREMENT值。进行了delete相关操作。rollback相关。但是不管是因为什么情况导致,领导有这个需求,我们只能照做!约定:源表: source目标表: destination伪SQL语句:SQL insert into destinati...

2019-06-15 11:39:30 3321

原创 msys2 修改国内源加速pacman

清华大学:/etc/pacman.d/mirrorlist.mingw32Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/etc/pacman.d/mirrorlist.mingw64Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64...

2019-06-15 11:27:44 5691

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除