uller

package module
v0.0.0-...-975da8f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 1, 2020 License: MIT Imports: 33 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BytesCombine

func BytesCombine(pBytes ...[]byte) []byte

[]byte合并

func BytesToInt

func BytesToInt(b [4]byte) int

字节转换成整形

func BytesToInt64

func BytesToInt64(b [8]byte) int64

字节转换成int64

func BytesToUint32

func BytesToUint32(array []byte) uint32

func Captcha

func Captcha(mode string, len int) (ret map[string]string)

* 验证码 * auth guolei at 20191105 * param mode 输出验证码类型:audio声音验证码,character字符串验证码,digit数学计算验证码 * param len 验证码长度 * return bool

func FileExists

func FileExists(file string) bool

* 判断文件是否存在 * auth guolei at 20191128 * param file 文件全路径 * return true文件存在,false不存在

func Get16MD5Encode

func Get16MD5Encode(data string) string

* 获取字符串16位md5值 * auth guolei at 20191101 * param data * return string data的32位md5值

func GetCurrentDirectory

func GetCurrentDirectory() string

* 获取当前运行程序的运行路径 * auth guolei at 20191128 * return 程序文件运行路径

func GetLocalIP

func GetLocalIP() (ip string)

* 获取本机ip,如果本机有多个ip地址则返回第一个 * auth guolei at 20200902 * return ip地址

func GetMD5Encode

func GetMD5Encode(data string) string

* 获取字符串32位md5值 * auth guolei at 20191101 * param data * return string data的32位md5值

func GetRandomString

func GetRandomString(length int) string

* 随机生成数字、字母字符串 * auth guolei at 20191101 * param l 生成字符串长度 * return string 随机生成字符串

func HttpBuildQuery

func HttpBuildQuery(params map[string]string) (ret string)

* 仿php http_build_query,将数组数据修改成post的以&符区隔参数 * auth guolei at 20200902 * param params 要排序的map * return ret 完成排序的map

func HttpRequest

func HttpRequest(url string, method string, ch chan []byte, header map[string]string, data string)

* http 协程请求 * auth guolei at 20191101 * param url 请求url全路径带http、https * param method 请求方式get、post... * param ch 通道,请求结果通知给chan * param header 自定义请求头 * param data 发送请求数据

func Int64ToBytes

func Int64ToBytes(num int64) [8]byte

int64转[]byte

func IntArrToString

func IntArrToString(obj []int) (ret string)

* 数字数组转换为英文逗号分隔的字符串 * auth guolei at 20191105 * param obj 数字数组 * return 以逗号分隔的字符串

func IntRange

func IntRange(min, max int) (int, error)

* IntRange 随机数生成 * auth guolei at 20200821 * param min 随机数最小值 * param max 随机数最大值 * return int 随机数

func IntToBytes

func IntToBytes(num int) [4]byte

func IsLittleEndian

func IsLittleEndian() bool

func IsNum

func IsNum(s string) bool

* 验证字符串是否为数字 * auth guolei at 20191105 * param string 字符串 * return bool

func MapInStringOrder

func MapInStringOrder(params map[string]string) (ret map[string]string)

* 按字母顺序排序map * auth guolei at 20200902 * param params 要排序的map * return ret 完成排序的map

func MapToSplitString

func MapToSplitString(m []map[string]interface{}, field string) (s string)

* []map转逗号分隔字符串 * auth guolei at 20200429 * return s

func OffsetXYAfterRotationCore

func OffsetXYAfterRotationCore(W, H, L, T, Angle float64) (x, y float64)

func Rc4Decrypt

func Rc4Decrypt(key string, src []byte) (ret []byte, err error)

* Rc4解密 * auth guolei at 20191101 * param key 解密秘钥 * param data base64后的待解密数据 * return byte[] 解密后数据 * return err 错误

func Rc4Encrypt

func Rc4Encrypt(key string, data []byte) (ret []byte, err error)

* Rc4加密 * auth guolei at 20191101 * param key 加密秘钥 * param data 加密数据 * return string base64后的加密数据 * return err 错误

func SnowflakeId

func SnowflakeId() (id int64)

* 获取雪花算法id * auth guolei at 20200429 * return id

func StringArrSearch

func StringArrSearch(arr []string, target string) (ret int)

* 字符串数组搜索 * auth guolei at 20200902 * param arr 要检索的数组 * param target 检索的字符串 * return int 匹配到的数组索引值

func StringArrToString

func StringArrToString(obj []string) (ret string)

* 字符串数组转换为英文逗号分隔的字符串 * auth guolei at 20191105 * param obj 字符串数组 * return 以逗号分隔的字符串

func StructArrToMap

func StructArrToMap(obj []interface{}) []map[string]interface{}

struct数组转为map数组

func StructToMap

func StructToMap(obj interface{}) map[string]interface{}

struct转换为map

func Strval

func Strval(value interface{}) string

* Strval 数据类型转换位string,浮点型 3.0将会转换成字符串3, "3",非数值或字符类型的变量将会被转换成JSON格式字符串 * auth guolei at 20200429 *

func UnicodeIndex

func UnicodeIndex(str, substr string) int

* 获取中文字符在字符串中的位置 * auth guolei at 20191101 * param str 要检索的字符串 * param substr 包含的字符串 * return int 包含的字符串出现的位置,-1未检索到

func VerifyCaptcha

func VerifyCaptcha(captchaId string, captcha string) bool

func VerifyEmailFormat

func VerifyEmailFormat(email string) bool

* 邮箱验证 * auth guolei at 20191101 * param email 邮箱 * return bool true验证通过,false验证不通过

func VerifyMobileFormat

func VerifyMobileFormat(mobile string) bool

* 手机号验证 * auth guolei at 20191101 * param mobile 手机号 * return bool true验证通过,false验证不通过

Types

type ClientProfile

type ClientProfile struct {
	Consumer     string // 客户端标识(使用程序所在服务器全路径+程序名)
	IP           string // 客户端ip
	PingInterval int    // 客户端发送心跳包间隔,单位秒
	Secret       string // 客户端传输加密秘钥
}

客户端链接识别包

type ClientTcp

type ClientTcp struct {
	Tcp Tcp
}

func ClientTcpInstance

func ClientTcpInstance(tcpConfig ...ClientTcp) (tcp *ClientTcp)

func (*ClientTcp) Start

func (clientTcp *ClientTcp) Start()

type Config

type Config struct {
	Path      string    // 程序运行目录
	IP        string    // 本机IP
	IniReader *ini.File // ini文件读取器
}

func ConfigInstance

func ConfigInstance(configConfig ...Config) *Config
type Header struct {
	Cmd           [4]byte  // 通讯命令
	ClientId      [32]byte // 服务器下发客户端标识,可以是加盐加密串防止长链被其他程序使用
	PackLen       [4]byte  // 发送Msg包长
	Timestamp     [8]byte  // 13位时间戳
	ClientCache   [1]byte  // 客户端是否缓存 0x00 false 0x01 true
	ClientEncrypt [1]byte  // 客户端是否加密 0x00 false 0x01 true
}

包头

type Log

type Log struct {
	Consumer      string         // 调用者程序所在机器路径+名称
	StorageType   string         // 日志保存类型  file:本地文件存储,db:数据库存储,remotServer:远程服务器存储
	StorageEngine *StorageEngine // 日志存储引擎
	Cache         bool           // 本地是否缓存
	SendInterval  int            // 开启缓存后日志存储间隔单位秒
	LogData       []LogData      // 日志数组
	Mutex         sync.RWMutex
	MaxLength     int    // 日志缓存数量,开启缓存后当日志数量到达一定值后忽略SendInterval值将日志存储
	Secret        string // 远程服务器存储传输过程加密秘钥,空值则传输不加密
	CliendId      string // 服务器端下发客户端id
}

日志队列

func LogInstance

func LogInstance(logConfig ...Log) *Log

func (*Log) Exit

func (log *Log) Exit(logData *LogData, mod ...bool) (exist bool)

func (*Log) GetMod5

func (log *Log) GetMod5(logData *LogData) (md5Key string)

func (*Log) LogMonitor

func (log *Log) LogMonitor()

func (*Log) Push

func (log *Log) Push(logData []LogData) (length int)

func (*Log) Write

func (log *Log) Write()

func (*Log) WriteDb

func (log *Log) WriteDb(db *gorose.Engin) (num int64, err error)

func (*Log) WriteFile

func (log *Log) WriteFile(f *os.File) (num int, err error)

func (*Log) WriteTcpConn

func (log *Log) WriteTcpConn() (num int, err error)

type LogClient

type LogClient struct {
	RunMod       string // 程序运行模式  dev:开发模式,test:测试模式,prod:生产模式
	Consumer     string // 调用者程序所在机器路径+名称
	PingInterval int    // 客户端发送心跳包间隔,单位秒
	LocalIp      string // 本机ip地址
	CliendId     string // 服务器端下发客户端id
	Log          *Log   // 日志
}

func LogClientInstance

func LogClientInstance() *LogClient

func (*LogClient) Debug

func (logClient *LogClient) Debug(logger string, logMessage string, exception string) (err error)

func (*LogClient) Error

func (logClient *LogClient) Error(logger string, logMessage string, exception string) (err error)

func (*LogClient) Fatal

func (logClient *LogClient) Fatal(logger string, logMessage string, exception string) (err error)

func (*LogClient) Info

func (logClient *LogClient) Info(logger string, logMessage string, exception string) (err error)

func (*LogClient) LogInfo

func (logClient *LogClient) LogInfo(logger string, logMessage string, exception string) (err error)

func (*LogClient) SendPing

func (logClient *LogClient) SendPing(conn *net.TCPConn)

func (*LogClient) SendProfile

func (logClient *LogClient) SendProfile(conn *net.TCPConn) (err error)

func (*LogClient) Warn

func (logClient *LogClient) Warn(logger string, logMessage string, exception string) (err error)

type LogData

type LogData struct {
	Md5Key       string `gorose:"md5_key" json:"md5_key"`             //IP、Level、Logger、Exception、LogMessage生成的md5Key值
	IP           string `gorose:"ip" json:"ip"`                       //错误产生机器IP
	Consumer     string `gorose:"consumer" json:"consumer"`           //程序所在机器路径+名称
	Lev          string `gorose:"lev" json:"lev"`                     //错误级别
	Logger       string `gorose:"logger" json:"logger"`               //错误产生者,可以是类名.方法名
	LogMessage   string `gorose:"log_message" json:"log_message"`     //错误日志
	Exception    string `gorose:"exception" json:"exception"`         //错误信息
	CreateTime   string `gorose:"create_time" json:"create_time"`     //创建时间
	SendInterval int    `gorose:"send_interval" json:"send_interval"` //记录间隔单位秒
	Count        int    `gorose:"count" json:"count"`                 //日志数量
}

日志

type LogServer

type LogServer struct {
	RunMod    string // 程序运行模式  dev:开发模式,test:测试模式,prod:生产模式
	Consumer  string // 调用者程序所在机器路径+名称
	LocalIp   string // 本地服务器IP
	LocalPort string // 本地服务器监听端口
	Log       *Log   // 日志
}

func LogServerInstance

func LogServerInstance() *LogServer

type Ping

type Ping struct {
	Consumer     string // 发送者
	PingInterval int    // 心跳间隔单位秒
}

心跳包

type Protocol

type Protocol struct {
	Header Header // 包头
	Msg    []byte // 日志数据
}

数据包通讯协议

func ProtocolInstance

func ProtocolInstance(protocolConfig ...Protocol) *Protocol

func (*Protocol) HeaderPack

func (p *Protocol) HeaderPack(cmd string, clientId string, packLen int, clientCache bool, clientEncrypt bool) (buf []byte, err error)

包头封包

func (*Protocol) SendPack

func (p *Protocol) SendPack(conn *net.TCPConn, buf []byte) error

发包

func (*Protocol) UnPack

func (p *Protocol) UnPack(serverTcp *ServerTcp, log *Log)

解包

type ServerTcp

type ServerTcp struct {
	Tcp        Tcp
	Mutex      sync.RWMutex
	ClientList map[string]map[string]int64 // 链接到服务器的客户端列表
	WhiteList  []string                    // 服务器端ip白名单
	BlackList  []string                    // 服务器端ip黑名单
}

func ServerTcpInstance

func ServerTcpInstance(tcpConfig ...ServerTcp) (tcp *ServerTcp)

func (*ServerTcp) ServerPipe

func (serverTcp *ServerTcp) ServerPipe(conn *net.TCPConn, log *Log)

func (*ServerTcp) Start

func (serverTcp *ServerTcp) Start(log *Log)

type StorageEngine

type StorageEngine struct {
	File      *os.File      // 文件存储
	OrmEngine *gorose.Engin // 数据库存储引擎
	Tcp       *net.TCPConn  // 远程服务器存储tcp长链接
}

存储引擎

type StorageTcp

type StorageTcp struct {
	Tcp *net.TCPConn // 远程服务器存储tcp长链接

}

远程服务器存储配置

type Tcp

type Tcp struct {
	IP      string
	Port    string       // 端口
	TcpConn *net.TCPConn // tcp链接
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL