10000 GitHub - cqdetdev/vortex: Websocket based microservice written in Go
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

cqdetdev/vortex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vortex

Websocket based microservice made in Go for simplicity and concurrency

Mockups

package main

func main() {
	s := vortex.NewService("user-database", auth.WithPassword("SECRET").WithIPWhitelist("12.34.56.78"))
	s.RegisterPackets(&FetchUserData{}, &UserData{}, &CheckAuthState{}, &AuthStateResponse{})

	db := database.New()

	s.RegisterHandle(&Handler{service: s, db: db})
	s.Start()
}

type Handler struct {
	service *AuthService
	db *Database
}

func (h *Handler) HandlePacket(conn *vortex.Conn, pk *packet.Packet) {
	switch pk {
		case *packet.FetchUserData:
			user := h.db.FetchUserData(pk.Name)
			conn.WritePacket(&UserData{
				SkinData: user.SkinData,
				RequestID: pk.RequestID
			}, false)
	}
}

TODO

  • Proper connection/authentication handling

Notes

  • Uses gophertunnel packet encoding/decoding IO
  • Websockets to promote more livetime data communications
  • Possibly change to QUIC to do non-blocking async IO

About

Websocket based microservice written in Go

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0