群发通知功能如何实现?

问题描述

EF链接的SQLSERVER循环用户列表,对每个用户添加一条新消息到消息数据表这样实现是否正确,是否有更好的实现方式,或者如何提高EF的效率

解决方案

解决方案二:
真正的消息push,跟数据库无关。数据库只是后备记录统计工具,例如当进程重启时也许可以查询得知发了多少消息、哪些推送成功了、哪些还没有推送成功。但是推送技术本身,跟数据库无关。如果你纠结于EF,一方面你绕到了无关的概念上去消磨时光然后将来才绕回真正的push通讯技术,另一方面也让稍微大一点的系统的push操作慢了至少20倍。
解决方案三:
对于初学者,满脑子只有“增删改查”的时候,作为一种“娃娃式的”小玩意儿,你可以以“一方写记录到数据库,然后另一方轮询查询数据库并且删除数据”的方式来假装去模拟这种通讯。然后你要记住,1、2年以后,你要学真正的通讯技术那几行代码,而不要绕道数据库去浪费系统时间。
解决方案四:
引用1楼sp1234的回复:

真正的消息push,跟数据库无关。数据库只是后备记录统计工具,例如当进程重启时也许可以查询得知发了多少消息、哪些推送成功了、哪些还没有推送成功。但是推送技术本身,跟数据库无关。如果你纠结于EF,一方面你绕到了无关的概念上去消磨时光然后将来才绕回真正的push通讯技术,另一方面也让稍微大一点的系统的push操作慢了至少20倍。

推送消息到用户手机用的是极光推送,没啥问题.关键是点击这个消息后进入到app的消息中心,这个时候必须要有一条数据吧?不然已读未读状态也无从修改.
解决方案五:
对于所有用户都有效的消息,一般做法不是专门弄一张表,然后查询时用户来笛卡尔关联查询,但阅读记录表是单独每个用户的也就是说,通知消息只有一条,但推送记录会有N条
解决方案六:
引用4楼starfd的回复:

对于所有用户都有效的消息,一般做法不是专门弄一张表,然后查询时用户来笛卡尔关联查询,但阅读记录表是单独每个用户的也就是说,通知消息只有一条,但推送记录会有N条

如果不考虑已读未读这样是很好的,之前也是这么做的,但是如何标记一个用户已读呢?还是需要一个用户一条记录呀
解决方案七:
消息本体可以用单独的表存放,每条消息存放一条即可,另外根据你的功能可以建立消息读取记录表和消息删除记录表等,当用户读取或删除消息时,插入相映的关联字段即可。
解决方案八:
引用6楼BitCoffee的回复:

消息本体可以用单独的表存放,每条消息存放一条即可,另外根据你的功能可以建立消息读取记录表和消息删除记录表等,当用户读取或删除消息时,插入相映的关联字段即可。

恩,目前的设计差不多就是这样的,但是数据库中的记录条数依然是每个用户一条(假设全部已读)

时间: 2024-09-08 10:30:21

群发通知功能如何实现?的相关文章

Win8如何使用应用通知功能管理应用通知

  Win8自带磁贴应用如邮件在开始屏幕,方便用户打开,而且这些应用还有通知推送功能,比如新邮件到达通知,让用户知道最新动态,不会错漏任何有用消息.这些通知推送在Win8中如何管理呢? 在Win8中,应用的通知是一种权限,而权限是否开启则由用户自己决定.首先我们打开一个应用,然后将鼠标滑至屏幕右下角调出Charm栏再选择设置,然后我们能看到"权限"选项,再打开权限就可以了. 应用内的通知权限 此外,Win8还加入了专门的通知设置界面,用于统一管理通知.在开始屏幕或者桌面下,将鼠标滑至屏

Outlook2013邮箱桌面通知功能失效怎么办?

  Outlook2013桌面通知功能失效,包括右下角信封不显示的解决办法 1.打开Outlook2013的"账户设置" 方法为:点击"文件"->"账户设置"->"账户设置" 2.确认"电子邮件"和"数据文件"两个标签页下的"默认值"为同一个账户就可以了,如果不是,请设置为同一个. 3.这样的话就可以看到熟悉的"桌面通知"和右下角&qu

如何使用OSS事件通知功能?

        图片内容分享平台.音视频平台如何及时的感知有新数据上传到OSS?如何及时感知相关内容发生了更新?如何及时感知重要文件被删除?如何知晓OSS上数据同步已经完成?OSS推出了"事件通知"功能,能够对大家所关心的OSS资源上的相关操作及时的进行消息通知. 一.事件通知介绍         OSS事件通知通知,是异步进行的,不影响正常的OSS操作,对原有的操作完全可以无感知.事件通知,包括"规则"和"通知"两部分.大家可以创建事件通知规则

wm-我想实现qq群发的功能,就是说把粘贴板上的内天发给好友,然后关闭好友对话框,求老司机指路

问题描述 我想实现qq群发的功能,就是说把粘贴板上的内天发给好友,然后关闭好友对话框,求老司机指路 // PostMsgDemo.cpp: 定义控制台应用程序的入口点 // #include"stdafx.h" #include BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM param) { char strClassName[MAXBYTE] = { 0 }; GetClassNameA(hWnd, strClassName, MAX

Windows 10在Redstone 3中添加多步交互式通知功能

Windows 10 Redstone 3(官方称为Windows 10秋季创作者更新)将为PC带来长期的改进,其中许多已经由微软本身宣布,但是对于用户来说显然有更微妙的变化即将到来,其中之一就是多步交互式通知功能,代表了Windows 10中已经可用的现有交互式通知的更新,应允许用户在不实际启动应用程序的情况下进行更多控制. 多步交互式通知允许用户直接从通知执行特定任务,并根据用户选择的选项,然后提供另一个通知来执行其他操作.例如,如果用户收到电子邮件,用户收到的交互式通知可能包括"回复&qu

Android模拟强制下线通知功能实例代码

package com.itheima74.broadcastbestpractice; import android.content.Intent; import android.os.Bundle; import android.os.SystemClock; import android.support.v4.content.LocalBroadcastManager; import android.view.View; /** * 模拟强制下线通知 * 1.登录成功后10秒发送一条本地自

配置 SQL Server Email 发送以及 Job 的 Notification通知功能

在与数据库相关的项目中, 比如像数据库维护, 性能警报, 程序出错警报或通知都会使用到在 SQL Server 中配置Email发送邮件的功能. 在BI项目中, 这种功能也使用的比较多. 比如 SSIS Package 一般会配置到 SQL Server Agent 按计 划执行, 这时 Package 执行失败后就需要在 Job 中发送邮件通知以及时排除错误. 有的时候在 Package 级别也会将错误信息存入 Error Log中, 使用触发器来发送邮件, 以防止 Job 中的 Notifi

JQuery使用$.ajax和checkbox实现下次不在通知功能_jquery

XXX平台要实现一个功能,公告弹出页面上使用复选框设置不再通知此类公告.   原理:<input type="checkbox" id="isSelect" name="isSelect" value="10" onclick="javascript:noTips();"/>,checkbox选中后提交表单,那么struts2的Action中isSelect就为'10',不选中提交表单isSel

推特APP适配支持iOS 10丰富通知功能

作为iOS 10的重要新功能之一,丰富通知(Rich Notification)功能已经在多个iOS 10原生应用如短信.邮件等重提供适配.近日,推特iOS APP开始适配了这一功能,能够让用户在锁屏或者通知中心里接受新推送通知时,无需解锁iPhone并启动相关应用,就可以直接进行互动. 用户可直接用3D Touch等调出包含图片.视频等丰富交互元素的通知弹窗. 这或将推动更多开发商积极推动适配此功能. 本文作者:佚名 来源:51CTO