Я начал играть с golang после прочтения GOLANG-BOOK. и я пытаюсь создать простой чат TCP. Я создал структуру пользователя и хочу прослушивать каждый канал 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;
}
}