I'm sorry that I didn't remind that my Client code does not compile. I've tried your example <https://play.golang.org/p/ISUR7c_Mtqb> with SetReadDeadline <https://godoc.org/golang.org/x/net/websocket#Conn.SetReadDeadline>(). It seems like what I want to do.
Thank you very much! Max Jake Montgomery於 2020年3月27日星期五 UTC+8上午1時12分07秒寫道: > > Your Client <https://play.golang.org/p/CmXjfAJSCY7> code does not > compile. As a courtesy to those trying to help, it is always good to test > your code before posting it. A working example, without your "busy" > messages would be something like: https://play.golang.org/p/cvgwd8GDobc . > The Read() method documentation > <https://godoc.org/golang.org/x/net/websocket#Conn.Read> says "Read > implements the io.Reader interface." So I suggest you *carefully *read > the io.Reader documentation <https://golang.org/pkg/io/#Reader>, because > it requires very specific handling to be done correctly. > > Also, I did note that golang.org/x/net/websocket documentation > <https://godoc.org/golang.org/x/net/websocket> states that: "This package > currently lacks some features found in alternative and more actively > maintained WebSocket packages." So you may want to consider using one of > those. > > I have not actually used golang.org/x/net > <https://godoc.org/golang.org/x/net>/websocket myself, but there is a > SetReadDeadline > <https://godoc.org/golang.org/x/net/websocket#Conn.SetReadDeadline>() > function. Because I have not used the package before, there may be some > hidden pitfalls that I am missing, but this code seems to do what you want, > using SetReadDeadline > <https://godoc.org/golang.org/x/net/websocket#Conn.SetReadDeadline>(): > https://play.golang.org/p/ISUR7c_Mtqb > > Good luck > > On Wednesday, March 25, 2020 at 8:56:57 PM UTC-4, 洪嘉鴻 wrote: >> >> I'm sorry. >> The followings are the complete codes of server and client: >> Server <https://play.golang.org/p/9vu0GW5a5Y8> >> Client <https://play.golang.org/p/CmXjfAJSCY7> >> >> Thank you very much! >> Max >> >> Jake Montgomery於 2020年3月25日星期三 UTC+8下午9時28分37秒寫道: >>> >>> You do not provide enough information to give a really good answer. >>> There are a number of ways to achieve this, but they depend on the details. >>> A more complete example would help. >>> >>> What is the type of `ws`? If it is something on which you can set a read >>> timeout, then one way would be to set a timeout, and loop. >>> >>> On Wednesday, March 25, 2020 at 4:10:19 AM UTC-4, 洪嘉鴻 wrote: >>>> >>>> Hello everyone: >>>> The version of the golang which I am using is 1.12.9 with Win10. >>>> I want to print something while the client is waiting for server. >>>> The following are the partial code of server and client. >>>> >>>> Server: >>>> time.Sleep(time.Second * 100) >>>> ws.Write([]byte("Hello!")) >>>> >>>> Client: >>>> while(!ws.Read(msg)){ >>>> fmt.Println("Please wait because server is busy.") >>>> } >>>> >>>> Can anyone suggest how to fix the code? >>>> >>>> Any help is appreciated. >>>> Thank you very much! >>>> Max >>>> >>> -- 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/ac4c3a2d-9305-4775-bc84-a91c8661bc38%40googlegroups.com.