socket_io_emitter

package module
v0.0.0-...-26341ad Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2019 License: MIT Imports: 2 Imported by: 0

README

socket.io-emitter

socket.io-emitter

依赖编码库 github.com/shamaton/msgpack 测试socket.io version-2 以上无问题

使用方式

  1. 获取包
go get github.com/yu-pu/socket.io-emitter
  1. 实现EmitterRedis接口,自由选择redis库实现Publish方法,参考example,https://github.com/yu-pu/socket.io-emitter/blob/master/example/test.go
example
// PublishData 实现publish方法,发布通知
func (client *emitterClient) Publish(channel string, data []byte) error {
	return RedisControlConn(func(conn redis.Conn) error {
		_, err := conn.Do("PUBLISH", channel, data)
		return err
	})
}

// BroadcastRoom 广播到房间内全部连接
func BroadcastRoom(prefixName string, nsp string, room string, event string, data interface{}) error {
	return socketIOEmitter.NewEmitter(eC, prefixName).Of(nsp).To(room).Emit(event, data)
}

// EmitToSocketID 单播
func EmitToSocketID(prefixName string, nsp string, socketID string, event string, data interface{}) error {
	return socketIOEmitter.NewEmitter(eC, prefixName).Of(nsp).To(socketID).Emit(event, data)
}

// BroadcastRoomExcept 广播到房间内,排除部分连接
func BroadcastRoomExcept(prefixName string, nsp string, room string, except []string, event string, data interface{}) error {
	return socketIOEmitter.NewEmitter(eC, prefixName).Except(except).Of(nsp).To(room).Emit(event, data)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Emitter

type Emitter struct {
	Prefix string
	Nsp    string
	// contains filtered or unexported fields
}

Emitter 广播实例定义

func NewEmitter

func NewEmitter(redis EmitterRedis, prefix string) *Emitter

NewEmitter 初始化Emitter实例

func (*Emitter) Emit

func (emitter *Emitter) Emit(args ...interface{}) error

Emit 发送广播

func (*Emitter) Except

func (emitter *Emitter) Except(sid []string) *Emitter

Except 排除定向的socketid

func (*Emitter) Of

func (emitter *Emitter) Of(nsp string) *Emitter

Of 指定命名空间

func (*Emitter) To

func (emitter *Emitter) To(room string) *Emitter

To 指定单个房间或者socketid

func (*Emitter) ToRooms

func (emitter *Emitter) ToRooms(rooms []string) *Emitter

ToRooms 指定多个房间

type EmitterRedis

type EmitterRedis interface {
	Publish(channel string, data []byte) error
}

EmitterRedis 广播相关的redis方法接口

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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