uds

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Aug 7, 2022 License: Apache-2.0 Imports: 10 Imported by: 1

Documentation

Overview

Package uds

Package uds

Package uds

Package uds

Package uds

Package uds

Package uds

Index

Constants

View Source
const (
	ErrUnsupportedOperation = "unsupported operation"
	ErrUdsListenerNil       = "unix server listener is nil"
)

Variables

View Source
var AutoCheckOption = Option{
	AutoCheck:         true,
	AutoCheckDuration: 60,
	AutoRecover:       false,
	ResponseFormat:    Res{},
	RequestFormat:     Req{},
	MaxSize:           1 << 10,
	LogTrace:          true,
}
View Source
var BigBodyOption = Option{
	AutoCheck:         false,
	AutoCheckDuration: 60,
	AutoRecover:       false,
	ResponseFormat:    Res{},
	RequestFormat:     Req{},
	MaxSize:           1 << 20,
}
View Source
var DefaultOption = Option{
	AutoCheck:         false,
	AutoCheckDuration: 60,
	AutoRecover:       false,
	ResponseFormat:    Res{},
	RequestFormat:     Req{},
	MaxSize:           1 << 10,
	LogTrace:          true,
}

Functions

func CreateSocket

func CreateSocket(s string) error

CreateSocket 创建socket 默认监听时会创建遇到无权限时调用此方法创建 s app or app.socket

func GetSocket

func GetSocket(s string) string

GetSocket 获取sock文件每次使用前清空之前的连接

func ModuleName

func ModuleName() string

ModuleName 模块名称

func RemoveSocket

func RemoveSocket(s string) error

RemoveSocket 删除socket

func Response

func Response(c net.Conn, res Res) error

Response 响应body数据

Types

type Funcs

type Funcs map[string]func(c net.Conn, req Req)

type Logger

type Logger interface {
	Info(v ...interface{})
	Warn(v ...interface{})
	Error(v ...interface{})
	InfoF(fmt string, v ...interface{})
	WarnF(fmt string, v ...interface{})
	ErrorF(fmt string, v ...interface{})
}

Logger 自定义的日志记录器 实现接口即可

type Option

type Option struct {
	AutoCheck         bool // 定时检查连接
	AutoCheckDuration int  // 单位s
	AutoRecover       bool // 出错后自动恢复
	RequestFormat     Req  // 请求的格式
	ResponseFormat    Res  // 响应的格式
	MaxSize           int  // 接收的byte最大字节数 默认1024
	LogTrace          bool // 是否使用内置的日志记录
}

type Req

type Req struct {
	Operation string   `json:"operation"`
	Data      string   `json:"data"`
	From      string   `json:"from,omitempty"`
	To        []string `json:"to,omitempty"` // 可以有多个接收者
}

type Res

type Res struct {
	Error string   `json:"error"`
	Data  string   `json:"data"`
	From  string   `json:"from,omitempty"`
	To    []string `json:"to,omitempty"` // 可以有多个接收者
}

type UDSServer

type UDSServer struct {
	Name   string // 注册服务的名称
	Option Option // 默认使用fushin option
	Logger Logger // 默认使用fushin logger
	// contains filtered or unexported fields
}

func Default

func Default(name string) UDSServer

Default 返回默认的unix server

func New

func New(name string) UDSServer

New 返回全新的unix server

func NewWithOption

func NewWithOption(name string, o Option, l Logger) UDSServer

NewWithOption 返回自定义的unix server

func (*UDSServer) AddFunc

func (u *UDSServer) AddFunc(operation string, f func(c net.Conn, req Req))

AddFunc 增加uds响应的处理函数 响应会以注册的format格式化 针对不同的处理可以注册多个func处理请求 operation为请求中的操作关键字 用于匹配func

func (*UDSServer) AutoCheck

func (u *UDSServer) AutoCheck()

func (*UDSServer) Close

func (u *UDSServer) Close()

Close 关闭unix的listener 不再接收请求

func (*UDSServer) Listen

func (u *UDSServer) Listen() error

Listen 在协程启动监听

func (*UDSServer) Run

func (u *UDSServer) Run(c net.Conn)

Run 启动服务监听请求

Jump to

Keyboard shortcuts

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