WebEvents

package module
v0.0.0-...-8074826 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2020 License: MIT Imports: 3 Imported by: 0

README

WebEvents

A dirt simple Socket.IO style websocket library.

Golang

Importing

Import it with:

go get github.com/McMackety/WebEvents

Usage

Here is a small echo example:

import (
  "net/http"
  "github.com/McMackety/WebEvents"
)

func main() {
  server := WebEvents.CreateServer()
	server.OnClientJoin(func(client *WebEvents.Client) {
		client.OnEvent("ping", func(client *WebEvents.Client, json interface{}) {
			client.EmitJSON("pong", json)
		})
	})

	log.Fatal(http.ListenAndServe(":8080", nil))
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	Websocket    *websocket.Conn
	StoredValues map[interface{}]interface{}
	// contains filtered or unexported fields
}

func (*Client) Close

func (client *Client) Close()

func (*Client) EmitData

func (client *Client) EmitData(event string, data []byte)

func (*Client) EmitJSON

func (client *Client) EmitJSON(event string, json interface{})

func (*Client) Get

func (client *Client) Get(key interface{}) interface{}

func (*Client) OnEvent

func (client *Client) OnEvent(event string, callback func(client *Client, json json.RawMessage))

func (*Client) Set

func (client *Client) Set(key interface{}, value interface{})

type Error

type Error struct {
	Name    string `json:"name"`
	Message string `json:"message"`
}

type MessageDecoder

type MessageDecoder struct {
	EventName string          `json:"eN"`
	Message   json.RawMessage `json:"m"`
}

type MessageWrapper

type MessageWrapper struct {
	EventName string      `json:"eN"`
	Message   interface{} `json:"m"`
}

type Server

type Server struct {
	Clients map[*websocket.Conn]Client
	// contains filtered or unexported fields
}

func CreateServer

func CreateServer() (server *Server)

CreateServer creates a WebEvents server, IT DOES NOT LISTEN TO A ADDRESS YOU NEED TO ADD THAT YOURSELF

func (*Server) EmitJSONAll

func (server *Server) EmitJSONAll(event string, json interface{})

func (*Server) OnClientClose

func (server *Server) OnClientClose(callback func(client *Client))

OnClientClose adds a client closed callback

func (*Server) OnClientJoin

func (server *Server) OnClientJoin(callback func(client *Client))

OnClientJoin adds a client joined callback

Jump to

Keyboard shortcuts

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