5,927
社区成员




d7或者xe10.3.3
想要实现的功能。总部选择各个部门 ,在消息框里 填写要发送的消息。点击发送后(可以选择 时间点发送 比如10分钟后 20分钟后)。消息发送后
各个部门的客户端程序上会有消息气泡显示。如果如果部门人员点击看了消息 和没看消息的 。总部都有通知反馈。都会有统计 这个消息哪个部门看了 哪个部门没有看到。 开始我是准备 发消息都写入到数据库里,但是考虑如果客户端都去定时去轮数据库 感觉对服务器的数据库压力加大了。所以考虑
别的方法。
客户端拿个线程循环访问服务器,不管是tcp还是udp,把timeout设为1分钟或更长。这样就能做到即时收到消息了。
QQ就是这样做的。
用socket
钉钉就是这样用的,
如果要像QQ那样的即时通讯,就用ClientSocket(客户端)+ServerSocket(服务端),两端都自己写,服务端要难点(多线程+服务程序);
简单点就用数据库查询,优点是省了服务端的开发,而且相当稳定,如每隔1分钟查询一次,然后断开连接,没多大压力吧。
简单方法就是弄一个服务器,各客户端连接到服务器,各消息都通过服务器中转。
再复杂一点,还是需要服务器,各客户端开放自己的通讯服务端口,服务器记录各客户端IP、端口,然后各客户端可以直接完成通讯。
然后,还有一种MQTT,他实际是一个消息服务器的。
这相当于即时通讯软件的一部分功能了,需要加一个服务器(业务量不大的话不需要物理上的服务器,只需要在你们现有的服务器上运行一个服务端软件即可),客户端启动的时候连接到服务端,这样服务端有消息之后可以直接推送给特定客户端,不需要客户端去轮询服务器。
不建议开发这种鸡肋功能(如果是高管要求的除外)。
如果要发送的消息是正式的,一般都由邮件群发。
如果消息不是正式的,大多会被忽略掉,或者拉个微信群就可以做到。