sseKit

package
v3.0.0 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// MessageTypeRaw 对于data,不做任何处理
	MessageTypeRaw = messageType{
		"raw",
	}

	// MessageTypeEncode 对于data,编码一下(前端需对应处理)
	MessageTypeEncode = messageType{
		"encode",
	}

	// MessageTypeBase64 对于data,base64编码一下(前端需对应处理)
	MessageTypeBase64 = messageType{
		"base64",
	}
)

Functions

func IsSseSupported

func IsSseSupported(w http.ResponseWriter, r *http.Request) error

IsSseSupported

@return 为"": 支持SSE

func NewProcessor

func NewProcessor(idGenerator func() (string, error), listener pushKit.Listener, msgType messageType) (pushKit.Processor, error)

NewProcessor

@param idGenerator 可以为nil(将使用xid) @param listener 不能为nil

func SetHeaders

func SetHeaders(w http.ResponseWriter)

SetHeaders 设置response header.

Types

type Event

type Event sse.Event

func (Event) Push

func (e Event) Push(w http.ResponseWriter) error

type MessageEvent deprecated

type MessageEvent struct {
	// Id
	/*
		PS:
		(1) 对应前端的 e.lastEventId.
		(2) 可以为"".
	*/
	Id string

	// Event
	/*
		PS:
		(1) 对应前端的 e.type.
		(2) 可以为""(此时等价于"message")
		(3) 如果不是 "message" 的话,前端需要自行添加对应的监听.
	*/
	Event string

	// Data
	/*
		PS:
		(1) 对应前端的 e.data.
		(2) 可以为"".
		(3) 建议对内容编码下,以防其中有特殊字符(\n等).
	*/
	Data string
}

MessageEvent 定义SSE事件.

Deprecated: Use sse.Event of github.com/gin-contrib/sse instead.

func (MessageEvent) String

func (e MessageEvent) String() string

String 实现SSE事件的 String() 方法

type SseChannel

type SseChannel struct {
	pushKit.BaseChannel
	// contains filtered or unexported fields
}

func (*SseChannel) BindBsid

func (channel *SseChannel) BindBsid(bsid string)

func (*SseChannel) BindGroup

func (channel *SseChannel) BindGroup(group string)

func (*SseChannel) BindUser

func (channel *SseChannel) BindUser(user string)

func (*SseChannel) Close

func (channel *SseChannel) Close(reason string) error

Close (写锁)后端主动关闭通道.

func (*SseChannel) Dispose

func (channel *SseChannel) Dispose()

Dispose 仅是释放资源,不会关闭通道(应当先关闭通道,再释放资源).

func (*SseChannel) Initialize

func (channel *SseChannel) Initialize() error

func (*SseChannel) Push

func (channel *SseChannel) Push(data []byte) error

Push (写锁)推送消息给客户端.

func (*SseChannel) PushMessage

func (channel *SseChannel) PushMessage(msgType messageType, data []byte) (err error)

PushMessage (写锁)推送消息给客户端.

type SseProcessor

type SseProcessor struct {
	pushKit.Processor
	// contains filtered or unexported fields
}

func (*SseProcessor) Process

func (p *SseProcessor) Process(w http.ResponseWriter, r *http.Request)

func (*SseProcessor) ProcessWithGin

func (p *SseProcessor) ProcessWithGin(ctx *gin.Context)

Jump to

Keyboard shortcuts

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