我是网络开发的新手,但我在VB6中完成了一个项目,它是一个实时发送和接收短信应用程序。它使用连接到服务器的GSM调制解调器。我的公司要求我使用ASP.NET MVC制作我的应用程序的基于Web的版本。
所以我在一个月前研究过MVC,创建了基本的CRUD应用程序,阅读了有关SignalR但我不想启动一个项目,我不确定它是否可行。所以我的问题是,该项目是否可以使用上述技术? (MVC,SignalR和GSM调制解调器)
如果是的话,你能指出我可以开始阅读的地方吗?也许你知道一个类似的项目可以指导我完成。 如果不是,您能否建议我使用适合该项目的技术可行? (我更喜欢ASP.NET MVC)
关于项目功能的一些细节:
具有用户认证 - 如果在GSM调制解调器中接收到SMS并且该用户可以回复并使用GSM将SMS发送回发送者,则该用户将具有简单的“SMS盒”类型的东西,其将像聊天盒一样更新。
如果有人可以帮助我,请指导我,指出一些阅读材料来制作这个项目,我将不胜感激。如果您需要澄清和进一步说明,请发布。谢谢!
答案 0 :(得分:0)
用户,
有很多方法可以达到这个目的,所以我将解释一个对我来说有用的方法。
根据提供的信息,我假设您有一个Windows桌面应用程序,可以与调制解调器通信并执行各种功能。
尝试在Web应用程序中执行相同的任务可能是一条艰难的道路,我选择的内容在我看来相当简单。您确实有两个不同的问题,一个是将收到的消息发送到Web应用程序,另一个是让Web应用程序将消息发送到调制解调器。
为了处理收到的消息,我在Web应用程序中创建了一个简单的web api,并定义了一个能够接收sms对象的post方法。您将需要为您的调制解调器项目中的代码提供此调用的URL,我将转换为Windows服务(如果尚未转换)。然后,当您的代码在调制解调器收到短信时触发,您只需创建一个对象,将其序列化为xml或json,然后在您的web api中调用post方法。这将使您有机会使用SignalR通知客户或您可能需要做的任何其他事情。老实说,这是一个简单的部分,你有"实时"处理能力现在接收。
对于发送,还有很多选项,我选择从Windows服务中的代码进行数据库轮询,所以当用户想要回复或发送消息时,消息会存储在数据库的表中,从那里服务代码将接收并发送它,一旦发送它将在表中标记一个发送的字段,并可能添加一个日期和时间,以确定何时发生。同样,您的服务代码可以调用您的网络API上的另一个方法,该方法将通知您的应用,已发送消息,并且您可以再次通知最终用户。
对于数据库轮询,有各种方法,您可以每分钟运行一些代码或一些可配置的值来查看是否有任何未发送的消息。
您可以使用SqlDependency并实时处理事件,您可以在将要插入的消息的表中注册一个事件,当发生这种情况时,您的服务代码将收到一个可以处理的实时事件
您也可以在Windows服务中创建服务,甚至是自我托管的网络API,可以在您想要发送电子邮件时从您的网络应用程序中调用。
我根据客户端要求做了各种实现,但是对于我在windows服务项目中托管wcf服务或web api,在我看来被证明是最好的。然后,您只需在Web应用程序中有一个配置部分,并为post方法提供服务地址或uri。
我希望我已经给你足够的想法来为你的项目提供一个起点。