【发布时间】:2014-11-04 21:23:40
【问题描述】:
在阅读了 GOLANG-BOOK 之后,我开始使用 golang。 我正在尝试构建一个简单的 TCP 聊天。 我创建了一个用户结构,我想从 users 数组中监听每个 user.inbound 频道。
我知道我的问题在于函数 writeUser(),因为它正在等待 user.inbound。我不确定如何正确地与一组用户进行这种引导。
这是我从编译器收到的错误:
./chatserver.go:22: syntax error: unexpected LCHAN, expecting )
./chatserver.go:25: non-declaration statement outside function body
./chatserver.go:31: non-declaration statement outside function body
./chatserver.go:32: syntax error: unexpected }
- 第 22 行是函数 writeUser()
这是我的代码:
type User struct {
name string
inbound chan string
outbound chan string
conn net.Conn
}
func writeUser(user.inbound chan string) {
// how can I get the user connection?
err := gob.NewDecoder(user.conn).Encode(inbound)
if err != nil {
fmt.Println("Error: ", err)
}
}
func (chat *Chat) broadcast(username string, message string) {
outboundMessage := username + ": " + message;
for _, user := range chat.users {
user.inbound <- outboundMessage;
}
}
【问题讨论】:
-
我编辑了您的问题标题 - 考虑到这里的频道数组没有问题。
标签: arrays go goroutine channels