向大家请教一个java web聊天的问题!
【背景描述】
我用javaee6和easyui框架+pushlet做了一个聊天的项目,类似于qq,没有好友功能,所有用户对于每个人都是可见的,用户登录后展开用户树,勾选一个或多个用户点击按钮开始聊天。聊天界面是弹出层做的(即easyui-window,用过的朋友大概知道),弹出层是我用js动态生成的,无限弹出的根本就是给div不同的id即可。
【问题描述】
单人对单人(a用户到b用户)时,a用户页面的弹出层id比如是a_b,b用户弹出层的id比如是b_a,这样我pushlet自带的onData()方法接受到后台返回的聊天内容时,可以依此判断,a_b,第一个永远是自己的用户名,第二个是对方的用户名,根据这个规则我用split('_')方法就可以组装成一个完整的id,从而将聊天内容填充到正确的id的div里。
问题出现!
多人对多人时,如:a,b,c,d四个用户,这时a用户发了一条消息给b,c,d三个用户,那么这三个用户得到的id是a_b_c_d,这时我用split('_') 方法截取后,a是发送人,b_c_d是接受人,那么b用户动态生成的id就是b_a_c_d,c用户动态生成的id就是c_a_b_d,d用户生成的id就是d_a_b_c,但这时!!如果b用户又发了一条消息给a,c,d三个用户,那么a,c,d这三个用户的id又发生了改变,变成了a用户:a_b_c_d,c_b_a_d,d_a_b_c,依此类推,他们这四个人互相发消息后各自的id都会发生改变,这样我就无法确定他们的id,也就无法将聊天内容正确的填充到对应的控件里了。over!不太会表达,字有点多,大家多多包涵。