hub

package
v0.0.0-...-bbb754b Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2021 License: MIT Imports: 8 Imported by: 0

README

Websocket hub

Хаб Вебсокет клиентов которые пришли к нам.

Реализация простого логирования в вебсокеты, консоль и файл


func main() {
    
	hub := newHub()
    go hub.run()
    
	
	logEr := bcl.NewChLoger(&bcl.Config{
		IntervalMs:     300,
		ConsolFilterFn: map[string]int{"Front Http Server":  0},
		ConsolFilterUn: map[string]int{"Pooling": 1},
		Mode:           0,
		Dir:            "x-loger",
		Broadcast: hub.Input,
	})
	logEr.RunMinion()
	Logx("-main->end[newHub]")
	Logx("-main->start[hub.run]-p2")
	time.Sleep(1*time.Second)
	logEr.ChInLog <- [4]string{"Welcome","nil",fmt.Sprintf("Вас приветствует \"Silika-FileManager Контроллер\" v1.1 (11112020) \n")}

	Logx("-main->end[hub.run]")
	// По вебсокетам у нас будет логер

Полный пример

package main


import (
	"bytes"
	"compress/flate"
	"fmt"
	"github.com/xela07ax/toolsXela/archiver"
	"github.com/xela07ax/toolsXela/tp"
)

func main()  {
	ts, _ := tp.BinDir()
	fmt.Printf("Bit: %s\n", ts)
	archiver.Print()
	z := archiver.Zip{
		CompressionLevel:       flate.DefaultCompression,
		MkdirAll:               true,
		SelectiveCompression:   true,
		ContinueOnError:        false,
		OverwriteExisting:      true,
		ImplicitTopLevelFolder: false,  //Неявная папка верхнего уровня
	}
	//err := z.Archive([]string{"D:\\Projects\\toolsXela\\toolsXela\\arch2"}, "test.zip")
	var b bytes.Buffer // A Buffer needs no initialization.
	err := z.ArchiveWriter([]string{"D:\\Projects\\toolsXela\\toolsXela\\arch2\\"}, &b)
	//f, err := tp.CreateOpenFile("tx.zip")
		//b.WriteTo(os.Stdout)
	fmt.Println(b.Len())
	//	b.WriteTo(f)
	//fmt.Println(err)
	//err = z.Unarchive("tx.zip", "txzip")
	//fmt.Println(err)
	r := bytes.NewReader(b.Bytes())
	fmt.Println(b.Len())
	err = z.UnarchReader(r,b.Len(),"txzip2")
	fmt.Println(err)
}
  1. Запустим сервер
cd ../chat-pokemon
λ  go run .
  1. Откроем страницу в браузере
    http://localhost:8180/
  2. Отправим текст для логера, что бы он транслировал в вэб окно и тд.
$ curl -H "Content-Type: application/json" -X POST http://localhost:8180/wsx/sendMsg -d "Hello World"

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Getime

func Getime() string

Types

type Client

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

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

type Hub

type Hub struct {
	Input chan []byte

	Debug           bool
	WebSocketOutput chan []byte
	// contains filtered or unexported fields
}

func NewHub

func NewHub(debug bool) *Hub

func (*Hub) Logx

func (h *Hub) Logx(txt string)

func (*Hub) Run

func (h *Hub) Run()

func (*Hub) ServeWs

func (h *Hub) ServeWs(w http.ResponseWriter, r *http.Request)

serveWs handles websocket requests from the peer.

type Notify

type Notify struct {
	FuncName string
	Text     string
	Status   int
	Show     bool
	UpdNum   int
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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