I know web based chatting service can be as complicated as possible, but I want to build a web based chat server that is as simple as possible.
And the chapter 8 of the book "The Go Programming Language" at https://github.com/adonovan/gopl.io/tree/master/ch8/chat seems to be a perfect starting point to learn the asynchronous web based chat service building. I've built a whole (simplest) web service that support user login and logout, at: https://github.com/suntong/lang/blob/master/lang/Go/src/net/HttpD/demo-redirect.go and was planning that the next logic steps would be to - incorporate the chat server as another goroutine besides my web server, and - add the chatting to my web service by spinning up a new chatting client goroutine when a new user logs in. However, it is incorporating the chatting client into my web service that made my head spinning none-stop. IE, for the following few lines of code from https://github.com/adonovan/gopl.io/blob/master/ch8/netcat3/netcat.go done := make(chan struct{}) go func() { io.Copy(os.Stdout, conn) // NOTE: ignoring errors log.Println("done") done <- struct{}{} // signal the main goroutine }() mustCopy(conn, os.Stdin) conn.Close() <-done // wait for background goroutine to finish I'm having a hard time putting it into my code. Specifically, how to handle incoming new chats message and push to all web base clients. What's the simplest solution for it? Note, to avoid user hitting refresh and lost all past conversation, I was planning to store all of them, including the connect variable returned from `net.Dial` into cookies. I know that there is a 4K size limit to total cookies size, but that's OK with me for such a simplest chatting service, which would add as minimum to the solution from ch8/chat as possible. Anybody can help please? -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/e3327bc2-4f2f-4038-b38d-0c9794ec6235n%40googlegroups.com.