55 "flag"
66 "fmt"
77 "log"
8+ "net/http"
9+ _ "net/http/pprof"
810 "os"
911 "os/signal"
1012 "sort"
3335)
3436
3537func main () {
38+ go http .ListenAndServe (":9999" , nil )
3639 var (
3740 listen string
3841 onlyID string
@@ -46,7 +49,7 @@ func main() {
4649 onlyPayloadS []string = []string {}
4750 )
4851 // 初始化启动参数
49- logPrint ("i" , lang ("TITLE" )+ " v1.0.0 " )
52+ logPrint ("i" , lang ("TITLE" )+ " v1.0.1 " )
5053 flag .StringVar (& language , "l" , "en" , "Language ( en(default) | cn )" )
5154 flag .StringVar (& listen , "p" , "127.0.0.1:1883" , "Define listening on IP:Port (default: 127.0.0.1:1883 )" )
5255 flag .StringVar (& onlyID , "c" , "" , "Only allow these client IDs (comma separated)" )
@@ -81,6 +84,7 @@ func main() {
8184 go func () {
8285 <- sigs
8386 done <- true
87+ close (sigs )
8488 }()
8589 // 初始化 MQTT 服务器
8690 logPrint ("i" , lang ("BOOTING" )+ listen + " ..." )
@@ -123,12 +127,12 @@ func main() {
123127 // 收到消息
124128 server .Events .OnMessage = func (cl events.Client , pk events.Packet ) (pkx events.Packet , err error ) {
125129 pkx = pk
126- var clID string = cl .ID
127- if onlyIdE && ! in (onlyIdS , clID ) {
130+ var clID * string = & cl .ID
131+ if onlyIdE && ! in (& onlyIdS , clID ) {
128132 return
129133 }
130- var topic string = pkx .TopicName
131- if onlyTopicE && ! in (onlyTopicS , topic ) {
134+ var topic * string = & pkx .TopicName
135+ if onlyTopicE && ! in (& onlyTopicS , topic ) {
132136 return
133137 }
134138 var payload string = string (pkx .Payload )
@@ -144,14 +148,15 @@ func main() {
144148 return
145149 }
146150 }
147- logFileStr (false , clID , topic , payload )
148- logPrint ("M" , fmt .Sprintf ("%s: %s, %s: %s, %s: %s" , lang ("MESSAGE" ), clID , lang ("TOPIC" ), topic , lang ("PAYLOAD" ), payload ))
151+ logFileStr (false , * clID , * topic , payload )
152+ logPrint ("M" , fmt .Sprintf ("%s: %s, %s: %s, %s: %s" , lang ("MESSAGE" ), * clID , lang ("TOPIC" ), * topic , lang ("PAYLOAD" ), payload ))
149153 return pk , nil
150154 }
151155 // 启动完毕
152156 logPrint ("i" , lang ("BOOTOK" ))
153157 // 处理结束信号
154158 <- done
159+ close (done )
155160 logPrint ("X" , lang ("NEEDSTOP" ))
156161 server .Close ()
157162 if logFileE {
@@ -167,10 +172,10 @@ func main() {
167172 os .Exit (0 )
168173}
169174
170- func in (strArr []string , str string ) bool {
171- sort .Strings (strArr )
172- index := sort .SearchStrings (strArr , str )
173- if index < len (strArr ) && strArr [index ] == str {
175+ func in (strArr * []string , str * string ) bool {
176+ sort .Strings (* strArr )
177+ index := sort .SearchStrings (* strArr , * str )
178+ if index < len (* strArr ) && ( * strArr ) [index ] == * str {
174179 return true
175180 }
176181 return false
0 commit comments