几个websocket的问题

已经知道了建立ws连接后客户端和服务器可以相互发送消息。比如客户端A和客户端B都连上了服务器C。A发送一条消息到C,告诉C要把消息发送给B(一个最简单的聊天场景)。A的消息里有发件人A和收件人B,这时候服务端C怎么把消息发给B呢?

  1. 只能是A和B连接上服务器后,用心跳(例如5s一次)请求服务器上要发送给自己的信息,服务器这时候才返回消息吗?
  2. 从某种角度讲,websocket模式下依旧是“客户端请求-服务端返回”的模式,没有服务端主动向客户端发送消息的办法嘛?
  3. 从同事那里听说了fd的概念,用一个fd可以标记一个唯一的客户端。这个fd是业务层的东西,还是websocket本身的东西?
从前从前,有个人爱你很久
thebestxt
讨论数量: 2

指定ID发送消息不就行了(前提是你要知道另外一个人的ID)

3年前 评论

1.如果要完整实现客户A给客户B发消息,你需要绑定客户A在业务中的标识比如userID:1,与客户A所在的客户端(浏览器)连接到服务器的标识FD:xxxx(这是tcp自动生成的),1:xxxx。2.websocket是全双工协议,客户端与服务端都可以主动发消息给对方3.大概的流程就是user:1登录绑定fdxxxx,发消息给user:2, 如果是在线消息,那也需要user:2登录状态并绑定自己的fdyyyyy
不一定对,自己想的是这样

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!