connect

package
v0.0.0-...-5e1d9b1 Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2021 License: MIT Imports: 29 Imported by: 0

Documentation

Overview

*

  • Created by lock
  • Date: 2019-08-09
  • Time: 15:18

*

  • Created by lock
  • Date: 2019-08-09
  • Time: 15:18

*

  • Created by lock
  • Date: 2019-08-09
  • Time: 18:18

*

  • Created by lock
  • Date: 2019-08-10
  • Time: 18:35

*

  • Created by lock
  • Date: 2019-08-09
  • Time: 15:18

*

  • Created by lock
  • Date: 2019-08-12
  • Time: 23:36

*

  • Created by lock
  • Date: 2019-08-10
  • Time: 18:32

*

  • Created by lock
  • Date: 2020/4/14

*

  • Created by lock
  • Date: 2019-08-09
  • Time: 15:19

Index

Constants

View Source
const NoRoom = -1

Variables

This section is empty.

Functions

This section is empty.

Types

type Bucket

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

func NewBucket

func NewBucket(bucketOptions BucketOptions) (b *Bucket)

func (*Bucket) BroadcastRoom

func (b *Bucket) BroadcastRoom(pushRoomMsgReq *proto.PushRoomMsgRequest)

func (*Bucket) Channel

func (b *Bucket) Channel(userId int) (ch *Channel)

func (*Bucket) DeleteChannel

func (b *Bucket) DeleteChannel(ch *Channel)

func (*Bucket) PushRoom

func (b *Bucket) PushRoom(ch chan *proto.PushRoomMsgRequest)

func (*Bucket) Put

func (b *Bucket) Put(userId int, roomId int, ch *Channel) (err error)

func (*Bucket) Room

func (b *Bucket) Room(rid int) (room *Room)

type BucketOptions

type BucketOptions struct {
	ChannelSize   int
	RoomSize      int
	RoutineAmount uint64
	RoutineSize   int
}

type Channel

type Channel struct {
	Room *Room
	Next *Channel
	Prev *Channel
	// contains filtered or unexported fields
}

in fact, Channel it's a user Connect session

func NewChannel

func NewChannel(size int) (c *Channel)

func (*Channel) Push

func (ch *Channel) Push(msg *proto.Msg) (err error)

type Connect

type Connect struct {
	ServerId string
}

func New

func New() *Connect

func (*Connect) InitConnectTcpRpcServer

func (c *Connect) InitConnectTcpRpcServer() (err error)

func (*Connect) InitConnectWebsocketRpcServer

func (c *Connect) InitConnectWebsocketRpcServer() (err error)

func (*Connect) InitLogicRpcClient

func (c *Connect) InitLogicRpcClient() (err error)

func (*Connect) InitTcpServer

func (c *Connect) InitTcpServer() error

func (*Connect) InitWebsocket

func (c *Connect) InitWebsocket() error

func (*Connect) Run

func (c *Connect) Run()

func (*Connect) RunTcp

func (c *Connect) RunTcp()

func (*Connect) ServeTcp

func (c *Connect) ServeTcp(server *Server, conn *net.TCPConn, r int)

type DefaultOperator

type DefaultOperator struct {
}

func (*DefaultOperator) Connect

func (o *DefaultOperator) Connect(conn *proto.ConnectRequest) (uid int, err error)

rpc call logic layer

func (*DefaultOperator) DisConnect

func (o *DefaultOperator) DisConnect(disConn *proto.DisConnectRequest) (err error)

rpc call logic layer

type Operator

type Operator interface {
	Connect(conn *proto.ConnectRequest) (int, error)
	DisConnect(disConn *proto.DisConnectRequest) (err error)
}

type Room

type Room struct {
	Id          int
	OnlineCount int // room online user count
	// contains filtered or unexported fields
}

func NewRoom

func NewRoom(roomId int) *Room

func (*Room) DeleteChannel

func (r *Room) DeleteChannel(ch *Channel) bool

func (*Room) Push

func (r *Room) Push(msg *proto.Msg)

func (*Room) Put

func (r *Room) Put(ch *Channel) (err error)

type RpcConnect

type RpcConnect struct {
}

func (*RpcConnect) Connect

func (rpc *RpcConnect) Connect(connReq *proto.ConnectRequest) (uid int, err error)

func (*RpcConnect) DisConnect

func (rpc *RpcConnect) DisConnect(disConnReq *proto.DisConnectRequest) (err error)

type RpcConnectPush

type RpcConnectPush struct {
}

func (*RpcConnectPush) PushRoomCount

func (rpc *RpcConnectPush) PushRoomCount(ctx context.Context, pushRoomMsgReq *proto.PushRoomMsgRequest, successReply *proto.SuccessReply) (err error)

func (*RpcConnectPush) PushRoomInfo

func (rpc *RpcConnectPush) PushRoomInfo(ctx context.Context, pushRoomMsgReq *proto.PushRoomMsgRequest, successReply *proto.SuccessReply) (err error)

func (*RpcConnectPush) PushRoomMsg

func (rpc *RpcConnectPush) PushRoomMsg(ctx context.Context, pushRoomMsgReq *proto.PushRoomMsgRequest, successReply *proto.SuccessReply) (err error)

func (*RpcConnectPush) PushSingleMsg

func (rpc *RpcConnectPush) PushSingleMsg(ctx context.Context, pushMsgReq *proto.PushMsgRequest, successReply *proto.SuccessReply) (err error)

type Server

type Server struct {
	Buckets []*Bucket
	Options ServerOptions
	// contains filtered or unexported fields
}
var DefaultServer *Server

func NewServer

func NewServer(b []*Bucket, o Operator, options ServerOptions) *Server

func (*Server) Bucket

func (s *Server) Bucket(userId int) *Bucket

reduce lock competition, use google city hash insert to different bucket

type ServerOptions

type ServerOptions struct {
	WriteWait       time.Duration
	PongWait        time.Duration
	PingPeriod      time.Duration
	MaxMessageSize  int64
	ReadBufferSize  int
	WriteBufferSize int
	BroadcastSize   int
}

Jump to

Keyboard shortcuts

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