gosocsvr alternatives and similar packages
Based on the "Networking" category.
Alternatively, view gosocsvr alternatives based on common mentions on social networks and blogs.
-
fasthttp
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http -
gnet
🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. -
Netmaker
Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks. -
fortio
Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats. -
mqttPaho
The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets. -
nbio
Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use. -
gev
🚀Gev is a lightweight, fast non-blocking TCP network library / websocket server based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers. -
gmqtt
Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.x and V5 in golang -
easytcp
:sparkles: :rocket: EasyTCP is a light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. -
peerdiscovery
Pure-Go library for cross-platform local peer discovery using UDP multicast :woman: :repeat: :woman: -
raw
DISCONTINUED. Package raw enables reading and writing data at the device driver level for a network interface. MIT Licensed. -
ethernet
Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. MIT Licensed.
CodeRabbit: AI Code Reviews for Developers
Do you think we are missing an alternative of gosocsvr or a related project?
Popular Comparisons
README
gosocsvr
GoLang package for creating elegant socket servers.
Available Options
gosocsvr.DefaultPortRangeMin - this is the start range port
gosocsvr.DefaultPortRangeMax - this is the end range port
gosocsvr.ConfigPort - this is the port the configuration handler uses
gosocsvr.ServicePool - this is a collection of services in use
Handlers
Handlers are functions that accept an input/sender (string, string) and outputs a byte array.
Example
AuthenticationHandler
func AuthenticationHandler(input string, sender string) []byte {
var inConv = []byte(input)
var a AuthenticationPayload
json.Unmarshal(inConv, &a)
//do some authentication
resp := AuthenticationResponse{
SessionID: "",
Message: "Authentication failed",
Code: 999,
}
return resp.ToJSON()
}
MessageHandler
func MessageHandler(input string, sender string) []byte {
var inConv = []byte(input)
var m MessagePayload
json.Unmarshal(inConv, &m)
//do some message handling
resp := MessageResponse{Code: 99}
return resp.ToJSON()
}
Implementation
The only public function of the gosocsvr is the Instatiate function.
func InstantiateServerPool(handlerFunctions []func(string, string) []byte)
Parameters
handlerFunctions []func(string, string) []byte - a collection of functions
handlers are used as the server entry points allowing connection via tcp, see above examples of AuthenticationHandler or MessageHandler for an example on use.
Example
func initServerPool() {
var serverPool = []func(string, string) []byte{
AuthenticationHandler,
MessageHandler,
}
gosocsvr.InstantiateServerPool(serverPool)
}
Working Examples
You can visit https://github.com/Rakeki/gosocsvr-example to see example code.
Configuration Server
The server will automatically listen on a specified port and output a JSON representation of the handler configuration.
[{ServiceName: "Example1", ServicePort: 2020 },{ServiceName: "Example2", ServicePort: 2022 }]