在阅读了 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;
}
}