首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.Net MVC 5.1网站在线聊天解决方案

Asp.Net MVC 5.1网站在线聊天解决方案
EN

Stack Overflow用户
提问于 2014-05-02 08:50:07
回答 1查看 2.3K关注 0票数 4

我有一个Asp.Net MVC 5.1网站。我们有3种类型的用户,我想在其中一种类型之间添加对聊天的支持。我想过一些像这样的模特:

代码语言:javascript
复制
public class Conversation
{
    public NormalUser A { get; set; }
    public NormalUser B { get; set; }
    public List<PrivateMessaage> Messages { get; set; }
}

public class PrivateMessaage
{
    public NormalUser Sender { get; set; }
    public NormalUser Receiver { get; set; }
    public string Message { get; set; }
    public DateTime Created { get; set; }
}

此外,我在项目的其他部分使用SignalR,并认为在SignalR之上添加聊天界面是一个非常好的解决方案。到目前为止一切看起来都很好。但是,我认为每次输入消息时点击数据库插入一个新消息并不是个好主意。我已经创建了许多策略,以实现自定义甜甜圈缓存在我的网站,使每一个页面尽可能快,这似乎会取消他们所有的!这个问题的首选解决方案是什么?我想我可能会采取这样的方法:

  • 将它们分批推送到数据库。例如,一旦消息超过阈值(其日期/时间差大于X或消息计数大于Y)。
  • 不要支持离线消息,只要通过SignalR将它们推入内存中就可以了。
  • 与第二个相同,但当目标用户离线时支持脱机。我想不会有多少消息会被发送到离线用户!
  • 不要藏任何东西。我去健身!!

第一个问题是,网站可能会崩溃(因为更新、停电、启示录(!)等等)。所有记忆中的信息都会丢失。我可以添加一个自定义的动作来冲洗所有的东西,但是它从来都不是很安全的。由于有很多聊天解决方案,我认为有非常方便的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2014-05-10 00:05:20

如果您不反对使用其他数据库,那么使用Firebase和AngularJS进行实时聊天是非常容易的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23424220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档