[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"i-ri:search-line":3,"i-ri:moon-line":8,"i-ri:sun-line":10,"i-ri:menu-3-line":12,"i-ri:close-line":14,"notes-module-items-im":16,"notes-module-index-im":66,"i-ri:arrow-left-s-line":218,"i-ri:menu-2-line":220},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"currentColor\" d=\"m18.031 16.617l4.283 4.282l-1.415 1.415l-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9s9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617m-2.006-.742A6.98 6.98 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7s3.133 7 7 7a6.98 6.98 0 0 0 4.875-1.975z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"currentColor\" d=\"M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2h.1A6.98 6.98 0 0 0 10 7m-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938A8 8 0 0 0 4 12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"currentColor\" d=\"M12 18a6 6 0 1 1 0-12a6 6 0 0 1 0 12m0-2a4 4 0 1 0 0-8a4 4 0 0 0 0 8M11 1h2v3h-2zm0 19h2v3h-2zM3.515 4.929l1.414-1.414L7.05 5.636L5.636 7.05zM16.95 18.364l1.414-1.414l2.121 2.121l-1.414 1.414zm2.121-14.85l1.414 1.415l-2.121 2.121l-1.414-1.414zM5.636 16.95l1.414 1.414l-2.121 2.121l-1.414-1.414zM23 11v2h-3v-2zM4 11v2H1v-2z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"currentColor\" d=\"M3 4h18v2H3zm6 7h12v2H9zm-6 7h18v2H3z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cpath fill=\"currentColor\" d=\"m12 10.587l4.95-4.95l1.414 1.414l-4.95 4.95l4.95 4.95l-1.415 1.414l-4.95-4.95l-4.949 4.95l-1.414-1.415l4.95-4.95l-4.95-4.95L7.05 5.638z\"\u002F>",[17,22,26,30,34,38,42,46,50,54,58,62],{"path":18,"title":19,"meta":20},"\u002Fnotes\u002Fim\u002F01-message-state\u002F01-offline-sync","连接恢复了，离线消息为什么还没补齐？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},"2026-11-05T09:47:15.000Z",{"path":23,"title":24,"meta":25},"\u002Fnotes\u002Fim\u002F01-message-state\u002F02-read-cursor","手机读过了，电脑为何又显示未读？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":27,"title":28,"meta":29},"\u002Fnotes\u002Fim\u002F01-message-state\u002F03-pagination-search","聊天搜索跳回旧消息后，怎样继续翻页？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":31,"title":32,"meta":33},"\u002Fnotes\u002Fim\u002F01-message-state\u002F04-unread-refresh","消息没停，未读角标就不更新？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":35,"title":36,"meta":37},"\u002Fnotes\u002Fim\u002F02-connection-protocol\u002F01-stream-parsing","一次接收回调，为什么不是一条消息？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":39,"title":40,"meta":41},"\u002Fnotes\u002Fim\u002F02-connection-protocol\u002F02-request-response","长连接上的请求，怎样等到自己的响应？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":43,"title":44,"meta":45},"\u002Fnotes\u002Fim\u002F02-connection-protocol\u002F03-connection-lifecycle","登录一直在连接中，到底在等什么？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":47,"title":48,"meta":49},"\u002Fnotes\u002Fim\u002F03-message-content\u002F01-file-download","附件下载完了，为什么还是打不开？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":51,"title":52,"meta":53},"\u002Fnotes\u002Fim\u002F03-message-content\u002F02-image-send","图片上传到 100%，为什么还没发出去？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":55,"title":56,"meta":57},"\u002Fnotes\u002Fim\u002F03-message-content\u002F03-mentions","聊天 @提及怎样保存身份和位置？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":59,"title":60,"meta":61},"\u002Fnotes\u002Fim\u002F04-client-release\u002F01-flutter-build","Release 包为什么仍连着测试环境？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":63,"title":64,"meta":65},"\u002Fnotes\u002Fim","即时通信",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"id":67,"type":68,"sourcePath":69,"routePath":63,"path":63,"title":64,"description":70,"updatedAt":21,"meta":71,"body":73,"toc":210},"bm90ZTpub3Rlcy9pbS9SRUFETUUubWQ","note","notes\u002Fim\u002FREADME.md","这些笔记记录聊天客户端里的具体问题。整体数据流先看聊天消息如何在多端保持一致。",{"id":67,"type":68,"sourcePath":69,"slug":72,"title":64,"updatedAt":21,"description":70,"lastUpdated":21},"im",{"type":74,"children":75},"root",[76,83,98,104,137,142,166,171,195,200],{"type":77,"tag":78,"props":79,"children":80},"element","h1",{"id":64},[81],{"type":82,"value":64},"text",{"type":77,"tag":84,"props":85,"children":86},"p",{},[87,89,96],{"type":82,"value":88},"这些笔记记录聊天客户端里的具体问题。整体数据流先看",{"type":77,"tag":90,"props":91,"children":93},"a",{"href":92},"\u002Fposts\u002Fcommercial-im\u002F01-im-message-delivery",[94],{"type":82,"value":95},"聊天消息如何在多端保持一致",{"type":82,"value":97},"。",{"type":77,"tag":99,"props":100,"children":102},"h2",{"id":101},"消息状态与历史",[103],{"type":82,"value":101},{"type":77,"tag":105,"props":106,"children":107},"ul",{},[108,116,123,130],{"type":77,"tag":109,"props":110,"children":111},"li",{},[112],{"type":77,"tag":90,"props":113,"children":114},{"href":18},[115],{"type":82,"value":19},{"type":77,"tag":109,"props":117,"children":118},{},[119],{"type":77,"tag":90,"props":120,"children":121},{"href":23},[122],{"type":82,"value":24},{"type":77,"tag":109,"props":124,"children":125},{},[126],{"type":77,"tag":90,"props":127,"children":128},{"href":27},[129],{"type":82,"value":28},{"type":77,"tag":109,"props":131,"children":132},{},[133],{"type":77,"tag":90,"props":134,"children":135},{"href":31},[136],{"type":82,"value":32},{"type":77,"tag":99,"props":138,"children":140},{"id":139},"连接与协议",[141],{"type":82,"value":139},{"type":77,"tag":105,"props":143,"children":144},{},[145,152,159],{"type":77,"tag":109,"props":146,"children":147},{},[148],{"type":77,"tag":90,"props":149,"children":150},{"href":35},[151],{"type":82,"value":36},{"type":77,"tag":109,"props":153,"children":154},{},[155],{"type":77,"tag":90,"props":156,"children":157},{"href":39},[158],{"type":82,"value":40},{"type":77,"tag":109,"props":160,"children":161},{},[162],{"type":77,"tag":90,"props":163,"children":164},{"href":43},[165],{"type":82,"value":44},{"type":77,"tag":99,"props":167,"children":169},{"id":168},"消息内容",[170],{"type":82,"value":168},{"type":77,"tag":105,"props":172,"children":173},{},[174,181,188],{"type":77,"tag":109,"props":175,"children":176},{},[177],{"type":77,"tag":90,"props":178,"children":179},{"href":47},[180],{"type":82,"value":48},{"type":77,"tag":109,"props":182,"children":183},{},[184],{"type":77,"tag":90,"props":185,"children":186},{"href":51},[187],{"type":82,"value":52},{"type":77,"tag":109,"props":189,"children":190},{},[191],{"type":77,"tag":90,"props":192,"children":193},{"href":55},[194],{"type":82,"value":56},{"type":77,"tag":99,"props":196,"children":198},{"id":197},"客户端交付",[199],{"type":82,"value":197},{"type":77,"tag":105,"props":201,"children":202},{},[203],{"type":77,"tag":109,"props":204,"children":205},{},[206],{"type":77,"tag":90,"props":207,"children":208},{"href":59},[209],{"type":82,"value":60},{"title":211,"searchDepth":212,"depth":212,"links":213},"",2,[214,215,216,217],{"id":101,"depth":212,"text":101},{"id":139,"depth":212,"text":139},{"id":168,"depth":212,"text":168},{"id":197,"depth":212,"text":197},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":219},"\u003Cpath fill=\"currentColor\" d=\"m10.828 12l4.95 4.95l-1.414 1.415L8 12l6.364-6.364l1.414 1.414z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":221},"\u003Cpath fill=\"currentColor\" d=\"M3 4h18v2H3zm0 7h12v2H3zm0 7h18v2H3z\"\u002F>"]