wss

package module
v0.0.0-...-9105e92 Latest Latest
Warning

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

Go to latest
Published: Dec 25, 2017 License: MIT Imports: 6 Imported by: 0

README

wss

A golang websocket server

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

Client is a middleman between the websocket connection and the hub.

func (*Client) Connection

func (c *Client) Connection() *websocket.Conn

Connection return websocket connection

func (*Client) Reply

func (c *Client) Reply(reply *Reply)

Reply send reply to client

type Config

type Config struct {
}

Config Server config

type Conn

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

Conn is an middleman between the websocket connection and the hub.

type IRouter

type IRouter interface {
	Channel() string
	Register(*Client, *Message) error
	Unregister(*Client, *Message) error
	Perform(*Client, *Message) error
	IsClosed() bool
	Run()
	Stop()
}

IRouter router interface

type Message

type Message struct {
	Command string          `json:"command"`
	Channel string          `json:"channel"`
	Data    json.RawMessage `json:"data"`
}

Message Message

type Reply

type Reply struct {
	Type    string          `json:"type,omitempty"`
	Channel string          `json:"channel,omitempty"`
	Data    json.RawMessage `json:"data"`
}

Reply Reply

type Server

type Server struct {
	Conf *Config
	// contains filtered or unexported fields
}

Server Websocket server

func NewServer

func NewServer(conf *Config) *Server

NewServer make a new websocket server

func (*Server) RegisterRouter

func (s *Server) RegisterRouter(router IRouter)

RegisterRouter register a router which implement IRouter interface

func (*Server) ServeWS

func (s *Server) ServeWS(w http.ResponseWriter, r *http.Request)

ServeWS handles websocket requests from the peer.

func (*Server) Start

func (s *Server) Start()

Start start server

func (*Server) Stop

func (s *Server) Stop()

Stop stop server

type SubchannelMessage

type SubchannelMessage struct {
	Subchannel string
	Message    json.RawMessage
}

SubchannelMessage subchannel message

type SubchannelReply

type SubchannelReply struct {
	Subchannel string
	Data       json.RawMessage
}

SubchannelReply subchannel reply

type SubchannelRouter

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

SubchannelRouter subchannel router, used for subchannel message

func NewSubchannelRouter

func NewSubchannelRouter(channel string, worker SubchannelWorker) *SubchannelRouter

NewSubchannelRouter create a new subchannel router

func (*SubchannelRouter) Channel

func (sr *SubchannelRouter) Channel() string

Channel interface implementation

func (*SubchannelRouter) IsClosed

func (sr *SubchannelRouter) IsClosed() bool

IsClosed interface implementation

func (*SubchannelRouter) Perform

func (sr *SubchannelRouter) Perform(c *Client, msg *Message) error

Perform interface implementation

func (*SubchannelRouter) Register

func (sr *SubchannelRouter) Register(c *Client, msg *Message) error

Register interface implementation

func (*SubchannelRouter) Reply

func (sr *SubchannelRouter) Reply(subReply *SubchannelReply)

Reply interface implementation

func (*SubchannelRouter) Run

func (sr *SubchannelRouter) Run()

Run interface implementation

func (*SubchannelRouter) Stop

func (sr *SubchannelRouter) Stop()

Stop interface implementation

func (*SubchannelRouter) Unregister

func (sr *SubchannelRouter) Unregister(c *Client, msg *Message) error

Unregister interface implementation

type SubchannelWorker

type SubchannelWorker interface {
	SetRouter(*SubchannelRouter)
	Run()
	Stop()
}

SubchannelWorker subchannel worker interface

Jump to

Keyboard shortcuts

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