添加聊天窗口关闭事件

建议 已结 23 237
情深不寿ya
悬赏:20飞吻
现在的业务需求是需要判断某一聊天窗口是打开还是关闭状态,以此来进行消息的已读未读的设置,希望贤心大神及管理员大神可以采纳
回帖
  • @fly起来 这个是我来判断关于这个窗口好友消息的最大消息id
    如果连续收到多条消息的话 打开这个窗口的时候把这个最大消息id传到后台去 小于这个id的就标记为已读
    但是其实我没怎么用上这个id,主要是拿了好友的id,然后后台判断与这个好友的消息id有什么是未读的,然后就标记为已读
    0 回复
  • Zlheb
    3天前
    消息发送到服务端就是未读,接收者查询这条数据时更改为已读,用窗口来设置不太合适吧
    0 回复
  • 那如果张三发消息过来,然后和张三的聊天窗口开着的话,那这条消息也是已读啊
    0 回复
  • @Zlheb 那如果张三发消息过来,然后和张三的聊天窗口开着的话,那这条消息也是已读啊
    0 回复
  • Zlheb
    3天前
    查询分为两部分,一种是获取消息列表,一种是查看某个消息的详情,这里才将消息设置为已读
    0 回复
  • @Zlheb 按照您所说的,先去查询消息列表,比如有两条未读消息,然后再去看这两条未读消息的详情吗,然后再设置为已读,那这两条未读消息看了还是没看根本不知道吧。我的思路是当和张三的聊天窗口开着的时候,收到消息了,直接设置和张三的所有消息为已读。
    0 回复
  • 我们这边最近开发的也类似你这样,不过是移动端的,
    代码不同,实现思路基层都差不多

    后台定义好,相互对接的字段,比如 a:未读0,已读1, 后台返回这个聊天记录的时候,a=0.前台收到a:0时,返回a:1给后台,至于你说的如果窗口打开状态的时候也是类似,我是看后台跟移动开发的时候,规定的字段很多,web端的话,只能说参考吧,
    0 回复
  • Zlheb
    3天前
    明白你的意思了,你可能想如果当前收到的消息正是打开窗口的人发的就直接已读。这种做法不太好,收到消息都是过滤后的,比如{id,title,time,sort,sender} 这只是初步收到的消息,然后前端根据这个消息id去请求详细详情,比如发送者头像,发送者消息气泡,以及与当前发送者的历史消息,始终都是两部分的,非要一部分的话那就判断以下,如果收到的消息的发送者跟当前打开窗口的对方是同一个就发送一个请求,让服务端设置为已读
    0 回复
  • @Zlheb 对,就是这个意思,目前正在困扰这一片,因为layim里面只有聊天窗口切换时候的事件,关闭窗口及网页关闭我们都不能监听到,所以觉得这个窗口的关闭开启事件监听还是很有必要的,至于你说的那个方法,我去试一试,希望可以实现,哈哈
    0 回复
  • @tiane 我现在是集成的腾讯云的,只要你一登录,它检测到未读的消息就给你弹,所以聊天窗口关着还好说,我调用切换聊天窗口那个事件,就把当前会话全都设置为已读了,就是当聊天窗口开着的时候不好处理,你说表面上读也读了,但是不好设置
    0 回复