以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]openQQ聊天窗口的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=177630)

--  作者:chnfo
--  发布时间:2022/5/29 8:30:00
--  [求助]openQQ聊天窗口的问题
1、QQServer示例中,启动以后是自动创建QQServer_Cache.mdb,是不是表示不能使用自建数据库表?如果服务器要保留所有用户的聊天记录,该如何处理?
2、看了一下客户端的数据库表,就是Name(也就是消息的对方)、Time(还不太清楚是发送时间还是接收时间,感觉是发送时间)、Content(消息内容,这里面涉及到文件、图片、文字,还有可能是网页地址--可能也是按文本信息存的)、Type(现在看到的都是1,不知道是干什么用的)、Read(现在看到的都是1,应当是boolean型,表示是否已经接收的意思?)、MeetingSender(会议发送者的意思),至于会议消息的,还没研究到,不太清楚数据库各列是什么意思。
3、因为自带的聊天窗口必须使用部门.用户这种格式,这其实适用于那种协作型的系统(比如一些工程项目的业主、承包商、监理三方协作的时候,为了方便定位,用机构类型.用户),但对于企业内部沟通不太适合(比如甲兼职多个职务,副总经理兼核心部门的负责人,员工如果要加公司高管.甲、核心部门A.甲、核心部门B.甲、分公司X.甲,而甲要接收消息的时候,还要分别选自己的机构登录,还只能看到登录机构下的消息,发给其它机构的自己的信息是看不到的,容易耽误事)
在论坛上咨询官方,说是如果不想用部门.用户,就得要自己做聊天窗口,这就涉及到一些问题,比如
(1)发送消息和接收消息,上面所提到的文件、图片、文字、网页地址,要用到什么格式,服务端如何识别?都要自己写?

--  作者:chnfo
--  发布时间:2022/5/29 20:39:00
--  
其实openqq并不一定需要改什么东西,可能只需要调整窗口中的好友的表现方式就可以了。就象选择好友的弹窗那样,而实际发送消息的时候,直接发送给好友就可以了(也就是node.name,而不是node.fullname),这个前提条件是用户不能重名(例如有几个张三,可以分别取名叫广东张三、河北张三,或者张三1、张三2)
--  作者:有点蓝
--  发布时间:2022/5/29 20:44:00
--  
1、不能使用自建数据库表。QQServer_Cache.mdb会一直保留的。可以复制到其它地方备份,也可以自己写代码连接这个数据库读取里面的数据
2、我也不知道具体代表什么意思。自己收发各种格式的消息,然后分析存储的数据了
3、自己做聊天窗口当然都要自己写。

Foxtable的聊天窗口消息列表其实使用的是表格,一个消息一行,里面的图片是通过绘制显示出来的:http://www.foxtable.com/webhelp/topics/1493.htm

--  作者:chnfo
--  发布时间:2022/5/29 21:19:00
--  
3、自己做聊天窗口当然都要自己写。
-----实在话是不想去做自己不擅长的事。太耗精力,直接采用官方的吧,用起来又很纠结,如果去对接什么QQ、微信的信息,那更纠结,因为工作量太大了。

官方其实可以考虑一下openqq考虑兼职的情况。
在用户名不重复的情况下,A部门.张三、B部门.张三、C部门.张三……,其实都是张三。
现实情况下,张三登录系统的时候,不会选择部门、再输入用户名密码去登录,多数会是直接输入用户名+密码登录。
而在登录以后,不管别人是发给哪个部门的张三,他都应当收到消息。
让一个小科员去选部门吧,挺鸡肋,因为小科员一般不会兼职,让他去选择部门,就有点多余
让一个领导去选部门吧,领导也会觉得烦躁:多点一次鼠标或按钮,他都觉得费事

我的想法是:openQQ中的用户分组只是一种表现形式。看界面,似乎是采用的TopicBar控件,那么发送消息的时候,我们只取topiclink.text就可以了,可以不取topicpage.text & "." & topiclink.text
这样,在数据库里,messages表的name列,就是张三(而不是A部门.张三或B部门.张三),而张三只需要用户名+密码登录的时候,所有发给他的消息都可以直接接收。

或者好友界面,可以直接用树啊,比如这样图片点击可在新窗口打开查看,取用node.text,而不是采用node.fullpath。因为是属于内部沟通,可以不象QQ那样还整个昵称啥的,没有必要,直接实名即可


真心话建议官方把openqq升个级。一个内部沟通工具,与客户的使用场景更贴近为宜
[此贴子已经被作者于2022/5/29 21:28:42编辑过]

--  作者:有点蓝
--  发布时间:2022/5/29 21:46:00
--  
我反馈一下。但是能否行得通要开发人员考虑了。
--  作者:chnfo
--  发布时间:2022/5/30 6:38:00
--  
另外,现在的聊天窗口,可以展示聊天信息,但没法复制聊天文字,能不能改进一下呢
--  作者:狐狸爸爸
--  发布时间:2022/5/30 7:07:00
--  
否决,目前处理方式符合多数人的需要,有人还需要多层目录树来分类呢,无法满足每种需求。

再说,就是选择个分组(部门)而已,为了省掉这步,付出那么大的代价,值吗?

--  作者:chnfo
--  发布时间:2022/5/30 8:59:00
--  
目前处理方式符合多数人的需要
----这个有没有做过调查哟。
现实的客户给我们的反馈是:如果是普通职员,不需要选择部门,因为他只属于一个部门。如果是兼职的人,多数是领导,他登录了A部门,就不能看到发给B部门的他的信息;登录了B部门,就看不到发给A部门的他的信息,总不能要求领导挨个把部门登个遍吧?
系统好不好,很大程度上取决于领导的意见。
官方这不是把我们用户放在客户的架子上烤?客户领导不满意,官方又不支持,还要我们自己去做窗口,给了qqserver,它与openqq的数据交换方式又是封闭的,动都动不了。

我们也把openqq当作亮点之一向客户推荐,上线以后,客户领导意见很大,我们作为狐表的使用者,备受煎熬。聊天信息不能复制,这个沟通以后,客户也能接受,不能复制文字,就截图嘛,但客户的领导对于要把他兼职的部门登个遍才不会遗漏消息,鸟了很多次了

普通职员倒也还好,选部门就选部门,多一步就象狐爸说的,没什么。但也有一些职员有意见,因为公司的部门不是两三个,随便一个大点的公司,部门都有十个以上,误选的概率还是有的,然后就会提示登录错误,虽然这种情况发生得不多,我们跟科室打交道久了,也熟悉了,讲一讲难处,说说好话,他们也就算了。但有时候领导在场提出这个问题的时候,职员也附和一下,我们开会的时候都不好圆场
[此贴子已经被作者于2022/5/30 9:12:50编辑过]

--  作者:有点蓝
--  发布时间:2022/5/30 9:16:00
--  
聊天信息可以复制文字的,选中消息,按ctrl+c。
--  作者:有点蓝
--  发布时间:2022/5/30 9:20:00
--  
建议还是换种方式,比如用户表增加一个列,假设列名称“聊天部门”,如果这个用户兼职多个部门的,维护用户信息的时候这个列设置为“跨部门”,或者“多部门”这种内容。

登录openqq的时候,判断这个用户“聊天部门”如果存储是“跨部门”,就统一按“跨部门.用户名”登录openqq,否则就按照常规的所属部门比如“销售部.用户名”登录。发消息也一样