需求:需要服务器知道客户端是否收到消息 已完成(或以了解): 1、使用socketio通讯时,服务器给客户端一条消息可以通过最后一个回调函数的方式获取(目前没这么做,怀疑这样做会影响客户端收消息效率); 2、客户端收到消息后再回复服务器一条消息作为上一条消息的确认,当然该条确认消息可以不实时。
目前我使用的是第二种方式,回复确认消息的结构设计:
纠结点:学习了mongodb一条数据的存储模式后,知晓当进行 update时,如果仅仅是简单的替换比如把name:‘haozxuan’ -》 name:‘nodejs’这样是很快,但是如果把name:‘haozxuan’ -》 name:{age:20,address:XXX,.....}这样的模式将会涉及到重新申请磁盘空间,这样的update将会相对比较耗时,当然,如果换种涉及思路将结构设计成这样的:
收到一条回复确认消息提出一个id这样的模式将不会设计重新申请磁盘空间的问题,随之产生的是磁盘碎片。
问题二:
与之逻辑相关的还有获取离线消息,因为如果使用表结构2,我就可以获得哪些用户还未收到某条消息,就可以将相应消息推给他,不过这种结构的弊端也显而易见,是以消息为主键而非用户,综上,欢迎有相关问题或需求的大神积极讨论,有相关经验的大神不吝赐教。
Thanks All