Skip to content

Latest commit

 

History

History
62 lines (55 loc) · 1.27 KB

README.md

File metadata and controls

62 lines (55 loc) · 1.27 KB

devfeel/connx

A simple tcp server/client go framework.

Feature:

  • 极其简单的使用代码
  • 经典Server/Client模式
  • 解决经典粘包问题
  • Server支持主动关闭
  • Client支持Send+Write\OnlySend模式
  • 提供默认的Message协议,自包含版本、命令、数据,应用可直接使用
  • 支持自定义HeadFlag设定,用于验证消息头

Code:

server code:

func main(){
	server, err := connx.NewServer("127.0.0.1:7069", onConnHandler)
	if err != nil{
		fmt.Println("GetNewServer error", err)
		return
	}
	fmt.Println("GetNewServer begin listen")
	server.Start()
}


func onConnHandler(conn *connx.Connection) error{
	msg, err := conn.ParseMessage()
	fmt.Println(msg, err)

	msgReply := connx.ResponseMessage("echo ok")
	conn.SendMessage(msgReply)
	return nil
}

client code:

func main(){
	client := connx.NewClient("127.0.0.1:7069", onConnHandler)
	go func(){
		for{
			err := client.Send(connx.RequestMessage("test client"))
			if err != nil{
				fmt.Println("Send login message failed", err)
			}else{
				fmt.Println("Send login message success")
			}
			time.Sleep(time.Second*10)
		}
	}()

	for{
		select{}
	}
}

func onConnHandler(conn *connx.Connection) error{
	msg, err := conn.ParseMessage()
	fmt.Println(msg, err)
	return nil
}