Ofe*_*mon 11 django android push-notification google-cloud-messaging server
我有一个Android客户端应用程序,我的服务器在django.
例如,我想在服务器中实现推送通知,以便在发生与其相关的数据发生变化时通知特定用户.
我找到了这些链接:
不确定我需要哪个链接以及什么链接.
我想要的一个例子是:
用户向服务器发出请求并更改数据,服务器向另一个用户发送推送通知.
那么我应该安装什么包?也许任何教程要遵循?我正在寻找任何帮助我的信息.
非常感谢!
---编辑----
所以我按照e4c5的建议做了,我有一个包含设备ID和用户的表.
我在安装应用程序时将设备注册到GCM.我还将Device_id添加到我的数据库中的表(目前用户字段null),并将Device_id保存在我的客户端应用程序中.
现在,当用户登录时,我向我的服务器发送请求,该请求将登录用户与设备ID耦合.
当用户注销时 - null再次显示用户字段.
问题是 - 如果UserA当前已注销(不在我的数据库中)但应该收到通知 - 我的服务器将查看数据库 - >设备ID表,并且在任何用户字段中都找不到userA(因为他是目前已退出).
结果 - 通知将丢失(我的服务器不会将其发送到GCM).
最好的情况是,当用户再次登录时,他将获得在他退出时发送给他的所有通知.
我怎样才能做到这一点?
谢谢!
答案是您根本不需要任何软件包。GCM 非常简单,您所需要做的就是向 google 提供的 url 发送HTTP post,并且您可以使用您最喜欢的 python http 客户端库来完成此操作。如果你还没有,我推荐python requests。大多数 GCM 库实际上所做的是在 http 库之上添加一个薄层,如下所示。
您需要有一个表来存储 GCM 注册 ID。如果使用你的应用程序的人被要求注册一个帐户,你的 Django 模型可能看起来像这样。
class Device(models.Model) :
ANDROID = 1
IPHONE = 2
CHROME = 3
OTHER = 4
DEVICE_CHOICES = ( (ANDROID, 'Android'), (IPHONE, 'iPhone') , (CHROME,'Chrome'), (OTHER,'Others'))
device_id = models.CharField(unique = True, max_length = 1024, default='')
device_type = models.SmallIntegerField(choices = DEVICE_CHOICES)
user = models.ForeignKey(User, null = True)
Run Code Online (Sandbox Code Playgroud)
当有人登录/注销时,您可能需要点击django 登录和注销信号来更新用户字段(或清除它)
| 归档时间: |
|
| 查看次数: |
7680 次 |
| 最近记录: |