glink

package module
v0.0.0-...-06169ae Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

README

基于Go语言封装的网络层脚手架,目前已具备基础功能将持续优化完善。

Install

go get github.com/letter-Z/glink

example

Using Gin:

package main

import (
	"fmt"

	"github.com/gin-gonic/gin"
	"github.com/letter-Z/glink"
)

func main() {
	router := gin.Default()
	g := glink.New()
	router.GET("/ws", func(ctx *gin.Context) {
		_ = g.HandleRequest(ctx.Writer, ctx.Request)
	})

	g.HandleTextMessage(func(s *glink.Session, message []byte) {
		fmt.Println(string(message))
		_ = g.MessgaeBroadcast(&glink.MessageBody{Type: glink.BinaryMessage, Data: []byte("hello, MessgaeBroadcast")})
		_ = g.MessgaeUnicast(s.GetID(), &glink.MessageBody{Type: glink.TextMessage, Data: []byte("hello, MessgaeUnicast")})
	})

	g.HandleBinaryMessage(func(s *glink.Session, message []byte) {
		fmt.Println(string(message))
	})

	g.HandleDisconnect(func(s *glink.Session) {
		fmt.Println(s.GetID(), " connection disconnected!")
	})

	_ = router.Run(":8081")
}

Documentation

Index

Constants

View Source
const (
	TextMessage   = 1
	BinaryMessage = 2
	CloseMessage  = 8
	PingMessage   = 9
	PongMessage   = 10
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	WriteWait      time.Duration
	PongWait       time.Duration
	PingPeriod     time.Duration
	MaxMessageSize int64
}
type GLink struct {
	Upgrader *websocket.Upgrader
	// contains filtered or unexported fields
}

func New

func New() *GLink

func (*GLink) HandleBinaryMessage

func (g *GLink) HandleBinaryMessage(f handleMessageFunc)

func (*GLink) HandleConnect

func (g *GLink) HandleConnect(f handleConnectFunc)

func (*GLink) HandleDisconnect

func (g *GLink) HandleDisconnect(f handleConnectFunc)

func (*GLink) HandleRequest

func (g *GLink) HandleRequest(w http.ResponseWriter, r *http.Request) error

func (*GLink) HandleTextMessage

func (g *GLink) HandleTextMessage(f handleMessageFunc)

func (*GLink) MessgaeBroadcast

func (g *GLink) MessgaeBroadcast(message *MessageBody) error

func (*GLink) MessgaeUnicast

func (g *GLink) MessgaeUnicast(toID string, message *MessageBody) error

type MessageBody

type MessageBody struct {
	Type int
	Data []byte
}

type Session

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

func (*Session) Close

func (s *Session) Close()

func (*Session) GetID

func (s *Session) GetID() string

func (*Session) ReadMessage

func (s *Session) ReadMessage() (data *MessageBody, err error)

func (*Session) WriteMessage

func (s *Session) WriteMessage(data *MessageBody) (err error)

type SessionManager

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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