Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lxzan/socket
https://github.com/lxzan/socket
protocol socket tcp
Last synced: about 19 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/lxzan/socket
- Owner: lxzan
- Created: 2020-03-26T11:14:53.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-03-30T02:01:57.000Z (almost 5 years ago)
- Last Synced: 2023-03-06T14:40:03.276Z (almost 2 years ago)
- Topics: protocol, socket, tcp
- Language: Go
- Size: 69.3 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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 mainimport (
"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
}
}
}```