小程序
小游戏
企业微信
微信支付
扫描小程序码分享
-wss里面获取其他用户的聊天信息,并且渲染到页面上面,假如现在有10个人在同一个长连接中,一个人一秒钟说一句话,对应的同一个连接里的客户端用户基本上就是每100ms接收到一次推送,前端使用setData渲染推送消息到页面(我看到文档说不能毫秒级别调用setData),这种需求下面如何保证性能问题,现在人数一增加手机就会卡死以及发烫。
- 需要官方指点迷津,给一个合适的解决办法
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
将新消息放到一个 [] 里,然后每隔2秒 检查 [] 是否为空,不为空,就将里面的东西 setData到界面上,然后将 []置空。注意消息顺序
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
谢谢,这个方法牺牲了即时性,保证了性能,这样子 用户的消息都会有延迟了 对于一个即时聊天来说 就不太符合要求了
在setData前,放个标志位,是否在赋值,设为true。新消息来了,如果在赋值,将新消息放队列里,否则直接setData。在setData的回调里,判断队列是否为空,为空则把是否在赋值的标志位置为false,不为空,就接着新一轮赋值
非常感谢,使用你说的方法确实优化了不少 赞
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
将新消息放到一个 [] 里,然后每隔2秒 检查 [] 是否为空,不为空,就将里面的东西 setData到界面上,然后将 []置空。注意消息顺序
谢谢,这个方法牺牲了即时性,保证了性能,这样子 用户的消息都会有延迟了 对于一个即时聊天来说 就不太符合要求了
在setData前,放个标志位,是否在赋值,设为true。新消息来了,如果在赋值,将新消息放队列里,否则直接setData。在setData的回调里,判断队列是否为空,为空则把是否在赋值的标志位置为false,不为空,就接着新一轮赋值
非常感谢,使用你说的方法确实优化了不少 赞