有个 web 后台, 如果用户 订阅了某个消息[比如 订阅了 文章]
那么 当后台有人添加了新文章, 那么对应的用户就会收到 消息
但有时候 用户可能没有打开浏览器 ,就可能无法及时 接收到消息
为了让用户不错过重要消息,打算弄一个 常驻的 windows 桌面软件,每个 1 分钟,请求一下服务器 看看是不是有待办事项和消息
服务器用的 django-rest-framework , 客户端打算也弄 python 写,然后 弄成 exe 格式的
对于对于整体代码思路 ,有些不太了解
比如 django 里 我有个文章模块, 当用户添加了文章, 该如何触发 消息, 又如何存储管理用户是否阅读了这个消息
有现成的轮子吗,大家有什么思路吗
多谢大家
1
squid157 2015-08-30 10:55:44 +08:00 via iPhone 1
Django 有 Signal ,但如果你想用桌面客户端一分钟一次,轮询也不是坏主意。看具体使用情况了。
|
2
Septembers 2015-08-30 11:06:03 +08:00 via Android 1
WebSocket
|
3
loading 2015-08-30 11:09:24 +08:00 via Android 1
如果 windows 客户端开发好了,开源吗?
也想用用! |
4
maemual 2015-08-30 11:27:27 +08:00 1
一分钟一次的这种频率,每次去拉一遍完全没什么多大问题啊。是否已阅自己做个标记不就完了么。
|
5
iwege 2015-08-30 11:50:47 +08:00 1
electron /node-webkit 直接封装网站。
|
6
menc 2015-08-30 11:59:23 +08:00 1
有现成的轮子,但是不是 django ,我强烈推荐你看看 mqtt 协议,基于 tcp 长连接的面向 topic 的订阅,可以实时 subscribe 和 publish
|
7
abelyao 2015-08-30 14:34:02 +08:00 via iPhone 1
@loading 話說忽然覺得 V2 上做 windows 桌面開發的人貌似挺少啊,你們是想要什麼功能?檢測網站新內容、然後右下角托盤給個提示?
|
8
loading 2015-08-30 14:58:29 +08:00 via Android 1
@abelyao 如果是 restful api 支持的,能直接显示 web 页面,我觉得就能满足我们这里大部分人的需求。
因为他们都是写 web 的~ |
9
Kilerd 2015-08-30 16:02:43 +08:00 via Android
@loading 确实有这个需求,毕竟如果只是可以通知的程序的话,直接显示 web 就好。 有做出来的,麻烦通知一下。
|
10
abelyao 2015-08-31 04:00:26 +08:00 via iPhone 1
|
11
loading 2015-08-31 07:01:20 +08:00 via Android 1
@abelyao
1.有可选的随系统启动选项 2.第一次启动时可输入用户名和密码,这个在 web 系统里是需要的,这个你应该知道。这个最好也是一个 web 页面。方便美化。 3.通知应该有两种方式,这个是通过预先定义使用哪种,再加入一种就是每次轮询时返回的信息中指定的一个内容。例如返回两个值 method,content 。当 method 是 web page ,那么就弹出 url 是 content 的页面。如果 method 是 bubble 就用气泡方式显示 content 的内容。点击气泡时,动作也是可定,关闭气泡并访问一个地址,或者打开一个地址。 上面说到的弹出 web 页面通知不知调用浏览器,而是类似搜狗输入法那种无边框小窗的方式。再次点击时才调用系统默认浏览器。 也许我都可以用 aauto 写一个了~可是可能会等到明年~ |
12
loading 2015-08-31 07:05:51 +08:00 via Android
关闭气泡时访问一个地址是为了给我们写的系统一个用户已读通知的信号!不需要调用浏览器。
程序在轮询时最好都要带 cookie ,和浏览器访问时一样。(这个我不知道 windows 的方式),这种方式能极大地让我们偷懒。 隔行如隔山~ |
13
qq12365411 OP @squid157 多谢
|
14
qq12365411 OP @Septembers 谢谢
|
15
abelyao 2015-08-31 16:37:16 +08:00 1
@loading 早上半睡半醒看了你这个描述,然后边想边睡着了…
如果是按照你说的这样,做成一个固定的也不难,但如果要做成一个可动态配置的,就有些麻烦了。毕竟每个网站他们的消息匹配方式都不一样、相应的处理事件也不一样。而 Winform 程序是需要编译的,可以在 GitHub 上提供整套源代码,但每个要用的朋友都需要自己装个 VS 编译出来也是麻烦。 反而我发现 V2EX 的提醒系统,有提供 Atom Feed RSS 的接口,每个用户一个 token ,然后给一个固定格式的 XML 结果。 这两天我到了有 PC 的地方装个 VS 试一下,感觉也蛮好玩的,如果能做出来。 全动态,全部可自定义配置,包括提醒界面的模板机制,哇,也不错。 |
17
abelyao 2015-08-31 18:00:22 +08:00
@loading 是,但是解析每个网站的数据是不一样的吧,登录的方式也不一样吧,难道为了这个提醒软件,去改网站的结构?有点本末倒置啊…
|
18
loading 2015-08-31 18:02:19 +08:00 via Android
@abelyao 配置文件都可以是在线获取,只是这个配置文件的地址就必须要有个地方存放。
我认为成品就两个文件,一个 exe ,一个是 conf.ini 里面只有一行,就是在线获取配置文件的地址。这样分发这个的时候只要写好这一行就行。修改都是服务端的事了。 进一步可以是加载同目录下的 ico 图标,显示在托盘。 期待您的作品,感谢您。 |
19
loading 2015-08-31 18:05:01 +08:00 via Android
|
22
yanyandenuonuo 2015-09-01 16:24:08 +08:00 1
@menc mqtt+1
|