Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

push feature #14

Open
tsurumi-yizhou opened this issue Oct 13, 2024 · 6 comments
Open

push feature #14

tsurumi-yizhou opened this issue Oct 13, 2024 · 6 comments

Comments

@tsurumi-yizhou
Copy link
Contributor

希望能获取关于fcm模式下服务器的开发文档,尽管我注意到代码中MyFirebaseMessageService并没有实现什么。

@ojhdt
Copy link
Member

ojhdt commented Oct 13, 2024

希望能获取关于fcm模式下服务器的开发文档,尽管我注意到代码中MyFirebaseMessageService并没有实现什么。

感谢对本项目的关注!fcm模式为v1提供的功能。由于项目正进行大幅重构,v1有关功能暂不维护;但预期该功能将会继承到v2。开发进度可以在tg群关注。

@tsurumi-yizhou
Copy link
Contributor Author

v2的整体设计是什么样的?

@ojhdt
Copy link
Member

ojhdt commented Oct 16, 2024

v2的整体设计是什么样的?

就fcm这块的话:

  • 接收:用户需要将消息内容(一般是用户自己架服务器获得)和设备ID发送给Parabox的中转服务器,然后中转服务器会将内容发给谷歌,谷歌再下发到客户端。
  • 发送:客户端直接与用户自己的服务器通讯

@tsurumi-yizhou
Copy link
Contributor Author

建议采用matrix的push gateway作为推送的实现方式。

app会向matrix服务要求将通知交给推送服务处理。app同时将token信息发送到推送服务。see:push gateway。app端的实现可以参考element,see:element-hq

另外,建议加入huawei push作为某些设备的fallback。

@tsurumi-yizhou tsurumi-yizhou changed the title doc request push feature Nov 2, 2024
@tsurumi-yizhou
Copy link
Contributor Author

另外,现在的extension是基于application的,一是没有鉴权机制,二是与app module ipc不够简洁高效。

我认为应当将其改为dynamic feature module:提供AuthActivity和MainService,利用ContentProvider初始化时将其注册到主函数。若考虑在app中提供ExtensionService,让extension中的工作都在此service中运行,可能能够进一步提高效率,但同时也提高了复杂度。

@ojhdt
Copy link
Member

ojhdt commented Nov 19, 2024

另外,现在的extension是基于application的,一是没有鉴权机制,二是与app module ipc不够简洁高效。

我认为应当将其改为dynamic feature module:提供AuthActivity和MainService,利用ContentProvider初始化时将其注册到主函数。若考虑在app中提供ExtensionService,让extension中的工作都在此service中运行,可能能够进一步提高效率,但同时也提高了复杂度。

新版本的extension的设计与此类似。在启动时会将extension的业务代码通过类加载+反射加载到主端,然后在ExtensionService中使用协程运行。代码实现可见此处

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants