首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SignalR实现MVC5实时短信

用SignalR实现MVC5实时短信
EN

Stack Overflow用户
提问于 2015-06-05 06:11:42
回答 1查看 642关注 0票数 0

我是新手的网络开发,但我有一个在VB6做的项目,它是一个实时发送和接收短信应用程序。它使用连接到服务器的GSM调制解调器。我的公司要求我使用ASP.NET MVC制作一个基于web的应用程序版本。

所以我在大约一个月前学习了MVC,创建了基本的CRUD应用程序,阅读了SignalR的相关知识,但我不想启动一个我不确定是否可行的项目。所以我的问题是,这个项目有没有可能使用上述技术?(MVC、SignalR和GSM调制解调器)

如果是,你能给我指出一个我可以开始阅读的地方吗?也许你知道一个类似的项目可以指导我完成。如果不是,你能建议我使用合适的技术来使这个项目可行吗?(我更喜欢ASP.NET MVC)

关于项目功能的一些细节:

有用户身份验证-此用户将有一个简单的“短信盒子”类型的东西,将像一个聊天盒子一样更新,如果短信是在GSM调制解调器接收到,这个用户可以回复和使用GSM发送短信回发送者。

如果有人可以帮助我,指导我,指出我一些阅读材料,使这个项目,它将不胜感激。如果你需要澄清和进一步的解释,请发帖子。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-06-17 19:08:21

用户,

有很多方法可以做到这一点,所以我将解释一种方法,它在一段时间前确实适用于我。

根据所提供的信息,我假设您有一个windows桌面应用程序,它已经可以与调制解调器对话并执行各种功能。

尝试在web应用程序中执行相同的任务可能是一条艰难的道路,在我看来,我选择的方法相当简单。您实际上有两个独立的问题,一个是将接收到的消息发送到web应用程序,另一个是让web应用程序将消息发送到调制解调器。

为了处理收到的消息,我在web应用程序中创建了一个简单的web api,并定义了一个能够接收sms对象的post方法。您将需要提供此调用的url到驻留在您的调制解调器项目中的代码,如果还没有的话,我会将其转换为windows服务。然后,当您的代码在调制解调器接收到sms时触发时,您只需创建一个对象,将其序列化为xml或json,然后在您的web api中调用post方法。这将使您有机会使用SignalR通知客户端或您可能需要执行的任何其他操作。老实说,这是简单的部分,你现在已经有了接收的“实时”处理能力。

对于发送,还有许多选择,我选择了从windows服务内部的代码进行数据库轮询,所以当用户想要回复或发送消息时,消息将存储在数据库中的一个表中,从那里服务代码将获取它并发送它,一旦发送,它将在表中标记为已发送的字段,并可能添加发生这种情况的日期和时间。同样,您的服务代码可以调用web api上的另一个方法,该方法将通知您的应用程序已发送消息,并且您可以再次通知最终用户。

至于数据库轮询,有多种方法,您可以简单地每分钟运行一些代码或一些可配置的值来查看是否有未发送的消息。

您可以使用SqlDependency并实时处理事件,您可以针对要发送的消息将插入其中的表注册一个事件,当这种情况发生时,您的服务代码将收到一个可以处理的实时事件。

你也可以在windows服务中创建一个服务,甚至是一个自托管的web api,当你的web应用程序想要发送一封电子邮件时,它可以被调用。

我根据客户的需求做了各种实现,但对我来说,在windows服务项目中托管一个wcf服务或web api,在我看来是最好的。然后,您只需在web应用程序中有一个配置节,并为post方法提供服务地址或uri。

我希望我已经给了你足够的想法来开始你的项目。

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

https://stackoverflow.com/questions/30655086

复制
相关文章

相似问题

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