rua

package module
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2021 License: MIT Imports: 9 Imported by: 4

README

Rua!

GitHub go.mod Go version GitHub GitHub release (latest by date)

English README

事件驱动异步通信框架,基于Go 语言编写。

此项目还有一个Rust 语言的版本:Ruast!

安装

安装服务器本体

go get github.com/DiscreteTom/rua

安装插件(以websocket为例)

go get github.com/DiscreteTom/rua/plugin/network/websocket

更多示例

更新日志

English

Rua is an event-driven async messaging framework written with golang.

This project also has a Rust-lang implementation: Ruast!

Installation

Install the rua server itself:

go get github.com/DiscreteTom/rua

Install plugins (e.g. websocket):

go get github.com/DiscreteTom/rua/plugin/network/websocket

More Examples

Change Log

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Wait added in v0.6.0

func Wait(ms uint64, c chan<- bool)

Types

type Broadcaster added in v0.6.0

type Broadcaster struct {
	// contains filtered or unexported fields
}

func NewBroadcaster added in v0.6.0

func NewBroadcaster() *Broadcaster

func (*Broadcaster) AddTarget added in v0.6.0

func (b *Broadcaster) AddTarget(handle *Handle)

func (*Broadcaster) AddTargetThen added in v0.6.0

func (b *Broadcaster) AddTargetThen(handle *Handle, callback func(uint))

func (*Broadcaster) KeepDeadTargets added in v0.6.0

func (b *Broadcaster) KeepDeadTargets(enable bool) *Broadcaster

func (*Broadcaster) RemoveTarget added in v0.6.0

func (b *Broadcaster) RemoveTarget(id uint)

func (*Broadcaster) RemoveTargetThen added in v0.6.0

func (b *Broadcaster) RemoveTargetThen(id uint, callback func(*Handle))

func (*Broadcaster) StopAll added in v0.6.0

func (b *Broadcaster) StopAll()

func (*Broadcaster) StopAllThen added in v0.6.0

func (b *Broadcaster) StopAllThen(callback func(error))

func (*Broadcaster) TimedWrite added in v0.6.0

func (b *Broadcaster) TimedWrite(data []byte, timeoutMs uint64)

func (*Broadcaster) TimedWriteThen added in v0.6.0

func (b *Broadcaster) TimedWriteThen(data []byte, timeoutMs uint64, callback func(error))

func (*Broadcaster) TimeoutMs added in v0.6.0

func (b *Broadcaster) TimeoutMs(ms uint64) *Broadcaster

func (*Broadcaster) Write added in v0.6.0

func (b *Broadcaster) Write(data []byte)

func (*Broadcaster) WriteThen added in v0.6.0

func (b *Broadcaster) WriteThen(data []byte, callback func(error))

type Ctrlc added in v0.6.0

type Ctrlc struct {
	// contains filtered or unexported fields
}

func NewCtrlc added in v0.6.0

func NewCtrlc() *Ctrlc

func (Ctrlc) Go added in v0.6.0

func (c Ctrlc) Go() *StopOnlyHandle

func (*Ctrlc) Handle added in v0.6.0

func (c *Ctrlc) Handle() *StopOnlyHandle

func (*Ctrlc) OnSignal added in v0.6.0

func (c *Ctrlc) OnSignal(handler func()) *Ctrlc

func (Ctrlc) Wait added in v0.6.0

func (c Ctrlc) Wait()

type FileNode added in v0.6.0

type FileNode struct {
	// contains filtered or unexported fields
}

func DefaultFileNode added in v0.6.0

func DefaultFileNode() *FileNode

func NewFileNode added in v0.6.0

func NewFileNode(buffer uint) *FileNode

func (*FileNode) Filename added in v0.6.0

func (n *FileNode) Filename(name string) *FileNode

func (FileNode) Go added in v0.6.0

func (n FileNode) Go() (*Handle, error)

func (*FileNode) Handle added in v0.6.0

func (n *FileNode) Handle() *Handle

type Handle added in v0.6.0

type Handle struct {
	StopOnlyHandle
	// contains filtered or unexported fields
}

func (*Handle) ClearTimeout added in v0.6.0

func (h *Handle) ClearTimeout()

func (*Handle) SetTimeoutMs added in v0.6.0

func (h *Handle) SetTimeoutMs(ms uint64)

func (*Handle) TimedWrite added in v0.6.0

func (h *Handle) TimedWrite(data []byte, timeoutMs uint64)

func (*Handle) TimedWriteThen added in v0.6.0

func (h *Handle) TimedWriteThen(data []byte, timeoutMs uint64, callback func(error))

func (*Handle) Write added in v0.6.0

func (h *Handle) Write(data []byte)

func (*Handle) WriteThen added in v0.6.0

func (h *Handle) WriteThen(data []byte, callback func(error))

type HandleBuilder added in v0.6.0

type HandleBuilder struct {
	// contains filtered or unexported fields
}

func NewHandleBuilder added in v0.6.0

func NewHandleBuilder() *HandleBuilder

func (HandleBuilder) Build added in v0.6.0

func (b HandleBuilder) Build() (*Handle, error)

Return error if missing `stopTx` or `tx`.

func (HandleBuilder) BuildStopOnly added in v0.6.0

func (b HandleBuilder) BuildStopOnly() (*StopOnlyHandle, error)

Return error if missing `stopTx`.

func (*HandleBuilder) StopTx added in v0.6.0

func (b *HandleBuilder) StopTx(stopTx chan *StopPayload) *HandleBuilder

func (*HandleBuilder) TimeoutMs added in v0.6.0

func (b *HandleBuilder) TimeoutMs(timeoutMs uint64) *HandleBuilder

func (*HandleBuilder) Tx added in v0.6.0

func (b *HandleBuilder) Tx(tx chan *WritePayload) *HandleBuilder

type HandleIdManager added in v0.6.0

type HandleIdManager struct {
	// contains filtered or unexported fields
}

func NewHandleIdManager added in v0.6.0

func NewHandleIdManager() *HandleIdManager

func (*HandleIdManager) Next added in v0.6.0

func (m *HandleIdManager) Next() uint

type StdioNode added in v0.6.0

type StdioNode struct {
	// contains filtered or unexported fields
}

func DefaultStdioNode added in v0.6.0

func DefaultStdioNode() *StdioNode

func NewStdioNode added in v0.6.0

func NewStdioNode(buffer uint) *StdioNode

func (StdioNode) Go added in v0.6.0

func (n StdioNode) Go() *Handle

func (*StdioNode) Handle added in v0.6.0

func (n *StdioNode) Handle() *Handle

func (*StdioNode) OnInput added in v0.6.0

func (n *StdioNode) OnInput(f func([]byte)) *StdioNode

type StopOnlyHandle added in v0.6.0

type StopOnlyHandle struct {
	// contains filtered or unexported fields
}

func (StopOnlyHandle) Stop added in v0.6.0

func (h StopOnlyHandle) Stop()

func (StopOnlyHandle) StopThen added in v0.6.0

func (h StopOnlyHandle) StopThen(callback func(error))

type StopPayload added in v0.6.0

type StopPayload struct {
	Callback func(error)
}

func NewStopPayload added in v0.6.0

func NewStopPayload() *StopPayload

func (*StopPayload) WithCallback added in v0.6.0

func (p *StopPayload) WithCallback(f func(error)) *StopPayload

type TailNode added in v0.6.0

type TailNode struct {
	// contains filtered or unexported fields
}

func NewTailNode added in v0.6.0

func NewTailNode(filename string) *TailNode

func (*TailNode) CheckIntervalMs added in v0.6.0

func (n *TailNode) CheckIntervalMs(ms uint64) *TailNode

func (*TailNode) Go added in v0.6.0

func (n *TailNode) Go() (*StopOnlyHandle, error)

func (*TailNode) Handle added in v0.6.0

func (n *TailNode) Handle() *StopOnlyHandle

func (*TailNode) OnNewLine added in v0.6.0

func (n *TailNode) OnNewLine(f func([]byte)) *TailNode

type TcpListener added in v0.6.0

type TcpListener struct {
	// contains filtered or unexported fields
}

func NewTcpListener added in v0.6.0

func NewTcpListener(addr string) *TcpListener

func (*TcpListener) Go added in v0.6.0

func (l *TcpListener) Go() (*StopOnlyHandle, error)

Return error if missing `peerHandler`。

func (*TcpListener) Handle added in v0.6.0

func (l *TcpListener) Handle() *StopOnlyHandle

func (*TcpListener) OnNewPeer added in v0.6.0

func (l *TcpListener) OnNewPeer(f func(*TcpNode)) *TcpListener

func (*TcpListener) PeerWriteBuffer added in v0.6.0

func (l *TcpListener) PeerWriteBuffer(buffer uint) *TcpListener

type TcpNode added in v0.6.0

type TcpNode struct {
	// contains filtered or unexported fields
}

func NewTcpNode added in v0.6.0

func NewTcpNode(conn net.Conn, buffer uint) *TcpNode

func (*TcpNode) Conn added in v0.6.0

func (n *TcpNode) Conn() net.Conn

func (*TcpNode) Go added in v0.6.0

func (n *TcpNode) Go() *Handle

func (*TcpNode) Handle added in v0.6.0

func (n *TcpNode) Handle() *Handle

func (*TcpNode) OnInput added in v0.6.0

func (n *TcpNode) OnInput(f func([]byte)) *TcpNode

type Ticker added in v0.6.0

type Ticker struct {
	// contains filtered or unexported fields
}

func DefaultTicker added in v0.6.0

func DefaultTicker() *Ticker

func NewTicker added in v0.6.0

func NewTicker(intervalMs uint64) *Ticker

func (*Ticker) Go added in v0.6.0

func (t *Ticker) Go() (*StopOnlyHandle, error)

Return error if missing `tickHandler`.

func (*Ticker) Handle added in v0.6.0

func (t *Ticker) Handle() *StopOnlyHandle

func (*Ticker) IntervalMs added in v0.6.0

func (t *Ticker) IntervalMs(ms uint64) *Ticker

func (*Ticker) OnTick added in v0.6.0

func (t *Ticker) OnTick(f func(uint64)) *Ticker

type WritePayload added in v0.6.0

type WritePayload struct {
	Data     []byte
	Callback func(error)
}

func NewWritePayload added in v0.6.0

func NewWritePayload(data []byte) *WritePayload

func (*WritePayload) WithCallback added in v0.6.0

func (p *WritePayload) WithCallback(f func(error)) *WritePayload

Directories

Path Synopsis
example
plugin
network/kcp Module

Jump to

Keyboard shortcuts

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