返回信息流利用websocket能够建立 客户端与服务器的长链接。 但是我看只有 onopen, onmessage ,close 等几个接口,也就是说只有 客户端事件触发之后,在页面调用ws.send 将消息传递给后台,然后才能利用onmessage ,将消息发送给 各个客户端。 那么如何能实现客户端没有时间发生,但是后台不断的将最新的数据传给后台?
是不是websocket不能实现,只能利用长轮询?
这是一条镜像帖。来源:北邮人论坛 / www-technology / #39604同步于 2017/2/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
请教websocket
ywg557
2017/2/22镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
onmessage 是指服务器发送消息过来时你如何处理, 而不是send之后才可以onmessage, 两者是分开的, 比如:服务器个客户端发送一条消息时就会触发客户端的onmessage函数
因为客户端和服务端都有onmessage。所以 我表述的不清楚 ,应该是 客户端不发送请求,在某个时刻某些数据更新了 ,然后服务端发送消息给 客户端 。 单向的服务器 向 客户端
【 在 lecher 的大作中提到: 】
: onmessage 是指服务器发送消息过来时你如何处理, 而不是send之后才可以onmessage, 两者是分开的, 比如:服务器个客户端发送一条消息时就会触发客户端的onmessage函数
客户端发送消息给服务器的时候会触发服务器的onmessage函数
同理, 服务器发消息给客户端的时候也触发客户端的onmessage函数
而且ws连接可以理解为全双工的, 也就是互相收发独立
按照你问题的意思, 结论为: 只要客户端连上服务器了, 不管客户端有没有send消息给服务器, 服务器都可以直接发送消息给客户端
【 在 ywg557 的大作中提到: 】
: 因为客户端和服务端都有onmessage。所以 我表述的不清楚 ,应该是 客户端不发送请求,在某个时刻某些数据更新了 ,然后服务端发送消息给 客户端 。 单向的服务器 向 客户端
:
嗯嗯,我知道怎么解决了。 我之前以为只能客户端send消息以后,服务器在onmessage里面才能调用sendmessage 才能返回数据给客户端。 如果不是这样的话,如果希望数据准备好后,自己发送给客户端的话。 实际上解法就是 类似 观察者模式,直接调用sendmessage
【 在 lecher 的大作中提到: 】
: 客户端发送消息给服务器的时候会触发服务器的onmessage函数
: 同理, 服务器发消息给客户端的时候也触发客户端的onmessage函数
: 而且ws连接可以理解为全双工的, 也就是互相收发独立