Joyit il y a 1 mois
Parent
commit
f5e21826ab
3 fichiers modifiés avec 58 ajouts et 5 suppressions
  1. 52 0
      config/const.go
  2. 4 0
      hub.go
  3. 2 5
      type.go

+ 52 - 0
config/const.go

@@ -0,0 +1,52 @@
+package config
+
+const (
+	// 系统错误号定义,最低号为110,最高127
+	MIN_SYSTEM_ERROR_CODE = 110 // 系统信息最小值
+	NEXT_SUBSCRIBE        = 111
+	NEXT_MIDDLE           = 112
+	CONVERT_FAILED        = 113
+	FORBIDDEN             = 120
+	SYSTEM_ERROR          = 123
+	GET_TIMEOUT           = 124
+	CONNECT_NO_MATCH      = 125
+	CONNECT_END           = 126
+	NO_MATCH              = 127
+	MAX_SYSTEM_ERROR_CODE = 127 //系统信息最大值
+)
+
+// 转换 id 到对应的消息
+func IdMsg(id int) string {
+	switch id {
+	case NEXT_SUBSCRIBE:
+		return "NEXT SUBSCRIBE"
+	case NEXT_MIDDLE:
+		return "NEXT MIDDLE"
+	case CONVERT_FAILED:
+		return "CONVERT FAILED"
+	case FORBIDDEN:
+		return "FORBIDDEN"
+	case SYSTEM_ERROR:
+		return "SYSTEM ERROR"
+	case GET_TIMEOUT:
+		return "GET TIMEOUT"
+	case CONNECT_NO_MATCH:
+		return "CONNECT NO MATCH"
+	case CONNECT_END:
+		return "CONNECT END"
+	case NO_MATCH:
+		return "NO MATCH"
+	}
+	return "UNKNOWN"
+}
+
+// 定义成功与失败的值
+const STATE_OK = 1
+const STATE_FAILED = 0
+
+const (
+	// ID 号最高值,高于这个值的ID号为系统内部使用
+	ID_MAX = 65500
+	// 验证ID
+	ID_AUTH = 65502
+)

+ 4 - 0
hub.go

@@ -328,6 +328,10 @@ func (h *Hub) sendRequest(gd *GetData) (count int) {
 		// 如果是客户端,并且有机会自动连接,则尝试自动连接
 		if i == 0 && h.connectHostFunc != nil && h.filterToChannelFunc != nil {
 			channel := h.filterToChannelFunc(gd.Filter)
+			if channel == "" {
+				log.Println("not channel found")
+				return 0
+			}
 			err := h.ConnectToServer(channel, false, nil)
 			if err != nil {
 				log.Println(err)

+ 2 - 5
type.go

@@ -138,15 +138,12 @@ type HostInfo struct {
 // url 格式:ws2://xor:s^7mv7L!Mrn8Y!vn@127.0.0.1:14541/wsv2?proxy=1
 // 仅支持客户端连接使用
 func ParseUrl(url string) (hostInfo *HostInfo, err error) {
-	mx := regexp.MustCompile(`^([a-z]+)([0-9]+)://([^/#\?]+)(/[\w\-/]+)?`).FindStringSubmatch(url)
+	mx := regexp.MustCompile(`^([a-z]+)([0-9]*)://([^/\?]+)(/[\w\-/]+)?`).FindStringSubmatch(url)
 	if mx == nil {
 		return nil, errors.New("invalid url")
 	}
 	protocol := mx[1]
-	version, err := strconv.Atoi(mx[2])
-	if err != nil {
-		return nil, err
-	}
+	version, _ := strconv.Atoi(mx[2])
 	host := mx[3]
 	index := strings.LastIndex(host, "@")
 	hash := ""