Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lxzan/socket


https://github.com/lxzan/socket

protocol socket tcp

Last synced: about 19 hours ago
JSON representation

Awesome Lists containing this project

README

        

### Universal Socket Protocol

- Server
```go
package main

import (
"github.com/lxzan/socket"
)

func main() {
s := socket.NewServer(&socket.Option{
CryptoAlgo: socket.CryptoAlgo_RsaAes,
PrivateKey: "example/cert/prv.pem",
})

s.Run(":9090", func(client *socket.Client) {
for {
select {
case <-client.PingTicker.C:
client.Ping()
case msg:=<-client.OnMessage:
println(&msg.Body)
case err := <-client.OnError:
println(err.Error())
return
}
}
})
}

```

- Client
```go
package main

import (
"github.com/lxzan/socket"
)

func main() {
client, err := socket.Dial("127.0.0.1:9090", &socket.Option{
CryptoAlgo: socket.CryptoAlgo_RsaAes,
PublicKey: "example/cert/pub.pem",
})
if err != nil {
println(err.Error())
return
}

_, err = client.WriteMessage(socket.TextMessage, nil, []byte("hello world!"))
if err != nil {
println(err.Error())
}

for {
select {
case msg := <-client.OnMessage:
println(string(msg.Body))
case err := <-client.OnError:
println(err.Error())
return
}
}
}

```