只能在频道上收到一条消息

时间:2015-12-27 12:28:34

标签: go

我创建了一个全局频道,并且只要在ExampleNewWatcher内发生新事件,就会向其发送消息。事件第一次发生时,消息将在通道的接收端收到。但是,第二次发生事件时,我没有在频道的接收端收到消息。

RewriteEngine On
Redirect /abc/def/ http://my-site.com/ghi/jkl.php

2 个答案:

答案 0 :(得分:2)

您的WebSock功能需要包含一个接收循环来接收多条消息。否则,您的函数将终止,websocket连接将被关闭。

答案 1 :(得分:0)

@MickaëlRémond是对的。将您的Websock功能修改为:

func Websock(ws *websocket.Conn) {
    for {
        msg := <-messages
        log.Println("only one message arrives, even if I create for two events", msg)
        if err := websocket.Message.Send(ws, msg); err != nil {
            log.Fatal(err)
        }
    }
}