最近写的服务。服务客户端使用C# 的websocket Client,服务端使用golang melody 进行开发。melody 暂没有处理消息类型的方法,所以需要我们进行处理。添加对应支持。大致处理逻辑,是在客户端原文包生成后加枚举字段,然后服务端判断接收包的byte[0]按约定的包处理逻辑进行处理。
客户端定义一个枚举

    public enum MsgType
    {
        REG_MSG =1,
        COMMAND
    }

发送时和原文包一起发送

ws.SendAsync($"{(int)MsgType.REG_MSG}{GetRegContent()}", (b) =>
 {
				if (b)
				{
						Console.WriteLine("send data ok");
				}
    });

Golang服务端处理接收事件

ws.HandleMessage(func(session *melody.Session, bytes []byte) {
		switch string(bytes[0]) {
		case "1":
			println("注册消息",)
			// 处理 byte[1:]的数据即可
		}

效果如下: