根因:tinode-sdk自带的Topic.topicType()前缀表只认'usr'为P2P类型前缀,没有 'p2p'这个条目,而本后端真实分配的P2P话题名是`p2p<hash>`形式——导致 isCommType()对每一个P2P会话都恒定返回false,MeTopic.contacts()因此把所有 单聊会话过滤掉。用真实账号实测确认这不是新会话/顶号账号特有的问题:任何 账号的任何P2P好友关系都受影响,只是群聊和"slf"自聊天不受影响所以此前一直 没被发现。 聊天列表改用Tinode#mapTopics()(不做类型过滤的原始遍历)+ 本项目自己正确 的前缀判断(p2p/grp/slf),不再依赖SDK自身的isCommType()。 实测(e2etester1/e2etester2真实新建好友关系,此前从未聊过天):修复前 标题栏显示原始topic hash+"离线"(对方实际在线)、侧边栏"暂无会话"(消息 其实已正确送达,只是不可见);修复后标题栏正确显示对方昵称+"在线",侧边栏 正确出现该会话及消息预览。
React + TypeScript + Vite
This template provides a minimal setup to get React working in Vite with HMR and some Oxlint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Oxc
- @vitejs/plugin-react-swc uses SWC
React Compiler
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
Expanding the Oxlint configuration
If you are developing a production application, we recommend enabling type-aware lint rules by installing oxlint-tsgolint and editing .oxlintrc.json:
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["react", "typescript", "oxc"],
"options": {
"typeAware": true
},
"rules": {
"react/rules-of-hooks": "error",
"react/only-export-components": ["warn", { "allowConstantExport": true }]
}
}
See the Oxlint rules documentation for the full list of rules and categories.