从 MySQL 表中为多个连接的客户端获取记录的最佳方式是什么,这些客户端同时并定期检索记录。
因此,当新记录进入表时,每个人都会收到新消息,但旧消息不应再次检索。
当前表结构: MessageId、消息、发布日期、MessageFromID
谢谢
最佳答案
您的问题可以转化为:每个客户如何知道哪些记录要读取,哪些记录不读取。
有两种完全不同的方法,具有截然不同的属性。
- 让客户关心这一点
- 让服务器来处理
模型 #1 非常简单地要求您
- 如果您的 MessageID 不能保证递增,请在某些字段上使用诸如
AUTO_INCRMENT
之类的内容 - 在服务器上,不仅向每个客户端提供消息,还向其提供 ID
- 让客户端保留此 ID 并将其用作下一次轮询的过滤器
模型 #2 需要你
- 还有另一个包含“ClientID 和 MessageID”的表
- 每当客户端收到消息时,就在那里创建一条记录
- 使用不存在的此类记录作为轮询过滤器
关于mysql - 从 MySQL 表中记录轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10580148/