Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gows

Minimal RFC compliant WebSocket Version 13 implementation in Pure Go with zero dependencies and with net/http compatibility.

Features

  • RFC 6455 compliant WebSocket 13 implementation
  • RFC 7602 compliant WebSocket Compression Extensions implementation

Usage

gows.Client

import "github.com/cookiengineer/gows"
import "log"
import "time"

logger := log.New(os.Stdout, "[client] ", log.LstdFlags)
client, err0 := gows.NewClient("ws://localhost:8080")

if err0 == nil {

    err1 := client.Connect()

    if err1 == nil {

        time.Sleep(100 * time.Millisecond)
        client.Socket.Send([]byte("Hello, world!"))

        time.Sleep(1 * time.Second)
        client.Socket.Close(gows.StatusGoingAway, "Goodbye!")

    } else {
        logger.Fatal(err1)
    }

} else {
    logger.Fatal(err0)
}

gows.Server

import "github.com/cookiengineer/gows"
import "log"

logger := log.New(os.Stdout, "[server] ", log.LstdFlags)
server := &gows.Server{
    Addr:    ":8080",
    Handler: func(websocket *gows.WebSocket) {

        logger.Print("Client connected!")

        websocket.OnMessage = func(message []byte) {
            logger.Printf("Received message: %s", message)
        }

        websocket.OnClose = func() {
            logger.Print("Client disconnected!")
        }

    },
    TLSConfig: nil,
    ErrorLog:  logger,
}

server.Listen()

Examples

Check out the examples folder for further API usage examples.

License

This library is licensed under the X11/MIT License

About

🚀 Pure Go WebSocket implementation

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages