golang 客户端维护连接问题

maixl · · 1907 次点击
websocket貌似可以解决,当服务器断开连接时,会通知客户端的;
#4
更多评论
发心跳,然后看是否写成功,写失败了,就认为断开,重新连接。(可以判断失败的类型,跟精确控制)
#1
用一个map,为每一个客户端分配一个id,用这个id与服务器通信,然后用一个msg := make(chan string)来监听客户端消息,再用一个leaving := make(chan string)来监听客户端断开的消息,有客户端断开时,向leaving发送本客户端的id,服务端接收后,从map中释放该连接资源即可,当然这是典型的select场景,需要轮询每个客户端的消息,类似于c++的select或者poll,想用异步io,还要更麻烦些。
#2