• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

请教一个Mvc网站和TcpServer集成通信的问题?

csdn_nickname_chen 2019-12-17 05:34:29

譬如一个外卖系统,用MVC方式开发了一个外卖网站,客人登录外卖网站,选好商品,下单。网站收到订单后,要立即通知商家,有新的订单了。

商家的收银电脑上装了一个exe软件,我想给这个exe加一个TcpClient控件,用socket方式连接到外卖服务器,那么外卖服务器就需要一个TcpServer控件。外卖网站收到订单后,立即通过TcpServer,给商家发新的订单消息。

那么问题来了:

1、外卖网站是MVC开发的,该怎么集成TcpServer?我看到IIS每隔24小时会自动重启一个网站,那是不是所有客户端都会掉线?

2、如果MVC不能直接集成TcpServer,那是不是将TcpServer做成一个exe软件?MVC做的网站该用什么技术和exe软件交互?

客人->外卖网站 ??? TcpServer->商家收银电脑
中间不知道用什么技术传递消息。
...全文
143 点赞 收藏 12
写回复
12 条回复
csdn_nickname_chen 2019年12月20日
感谢各位指点,原来以为很难实现的,现在却发现有这么多方法,我总结一下
1、MVC中用tcpclien和TCPServer通信
2、MVC把通知存在数据库里,再由TCPServer定时检索,然后发送
3、WebSocket
4、用第三方的推送服务
这些都是之前从来没想到过的,再次感谢各位。
回复 点赞
ying1234 2019年12月18日
简单点,服务端用supersocket(.net的一个socket框架,直接拿来用最方便)做个window服务或者控件台程序,定时扫描订单表(或者说推送表),推送数据,客户端也可以supersocket,这个框架我们用过,还比较稳定。一直没出什么问题过。最开始的时候把队列做表里最方便,你也最熟悉,优化以后再说吧。
回复 点赞
wanghui0380 2019年12月18日
建议:在各位显示技术NX的同时,能否给一个最简单直白的实现,不要总往技术NX上拽。技术在NX,也未必吸引投资者 能让投资者能以最快,最简便的方式赚到钱,那么他们才愿意投资给你。 最简单直白的实现 1.花点小钱,买个推送服务,前期规模不大。直接弄,快速实现你要实现的,吸引到客户,同时快速验证这条路能给你带来钱 2.中期替换,使用rabitmq,简单快速替换 3.后期,如果你能赚到更多钱,不妨专门投入。去做高并发,高可用,双向交互通知
回复 点赞
by_封爱 2019年12月18日
引用 6 楼 csdn_nickname_chen 的回复:
假设做了一个集成TcpServer的exe,暂且称为TcpServer.exe吧。商家客户端用Socket和TcpServer.exe可以相互通信了。 可关键的问题是,客户下单后,Mvc怎么触发TcpServer.exe呢,Mvc怎么发通知给TcpServer.exe,这个会用到哪方面的技术? 总不能用SendMessage()函数吧,感觉这个太复杂了,用这个传送数据好像还要申请共享内存什么的。还有什么其它技术吗?
服务器的exe跟客户端的exe是长连接的. 这个没问题 但是 你现在想做"通知",那么就需要网页端发送一个标识符. 所以 你在网页里写 tcp_client 的东西 发送一个信号 也是可以的.. 但是你虽然用的是长连接.. 但是因为网页的原因 他并不是长连接.. 会自动销的. 不过不要紧 你只是发送过去一个信号而已.server.exe可以接收到这个信号.然后在给客户端做推送.
回复 点赞
csdn_nickname_chen 2019年12月17日
引用 7 楼 楠小南 的回复:
[quote=引用 5 楼 csdn_nickname_chen 的回复:]
[quote=引用 1 楼 楠小南 的回复:]
用 websocket 不是简单多了,客户端加个心跳 断了就重连 即可


商家客户端是exe,exe也可以集成websocket吗?

是不是商家客户端集成WebSocketClient,Mvc外卖网站集成WebSocketServer?[/quote]

对,可以[/quote]

感谢,我先找找WebSocket的资料。一个WebSocket服务器能同时连接多少个WebSocketClient。

引用 3 楼 wanghui0380 的回复:
以你的情况,个人建议先买个“推送服务”完成先

先完成,如果后面想自己做推送服务,其实也简单,N种实现方式
m
ps:其实你不说不会做,你只是不知道怎么找到资料,这个里面先别忙着tcp,先百度人家的“推送服务”怎么弄的


一直开发纯网站,没做过这种系统性的东东,所以不知道该用哪方面技术,该找哪方面的资料,谢谢指点。
回复 点赞
楠小南 2019年12月17日
引用 5 楼 csdn_nickname_chen 的回复:
[quote=引用 1 楼 楠小南 的回复:]
用 websocket 不是简单多了,客户端加个心跳 断了就重连 即可


商家客户端是exe,exe也可以集成websocket吗?

是不是商家客户端集成WebSocketClient,Mvc外卖网站集成WebSocketServer?[/quote]

对,可以
回复 点赞
csdn_nickname_chen 2019年12月17日
引用 2 楼 by_封爱 的回复:
mvc不能.. 你可以使用SignalR 或者exe或者winservice.

因为你客户端选择了exe. 那么我觉得你服务端选择后面2钟比较合适.


假设做了一个集成TcpServer的exe,暂且称为TcpServer.exe吧。商家客户端用Socket和TcpServer.exe可以相互通信了。

可关键的问题是,客户下单后,Mvc怎么触发TcpServer.exe呢,Mvc怎么发通知给TcpServer.exe,这个会用到哪方面的技术?

总不能用SendMessage()函数吧,感觉这个太复杂了,用这个传送数据好像还要申请共享内存什么的。还有什么其它技术吗?
回复 点赞
csdn_nickname_chen 2019年12月17日
引用 1 楼 楠小南 的回复:
用 websocket 不是简单多了,客户端加个心跳 断了就重连 即可


商家客户端是exe,exe也可以集成websocket吗?

是不是商家客户端集成WebSocketClient,Mvc外卖网站集成WebSocketServer?
回复 点赞
wanghui0380 2019年12月17日
如果是网站--------------推送到exe,其实相对更简单。 一个mq足矣。 网站直接pubshi 到 "订单/商户id" exe直接订阅“订单/商户id”就成 前面说了,N种方式,只要你知道去找怎么实现“消息推送”就ok。
回复 点赞
wanghui0380 2019年12月17日
以你的情况,个人建议先买个“推送服务”完成先 先完成,如果后面想自己做推送服务,其实也简单,N种实现方式 m ps:其实你不说不会做,你只是不知道怎么找到资料,这个里面先别忙着tcp,先百度人家的“推送服务”怎么弄的
回复 点赞
by_封爱 2019年12月17日
mvc不能.. 你可以使用SignalR 或者exe或者winservice. 因为你客户端选择了exe. 那么我觉得你服务端选择后面2钟比较合适.
回复 点赞
楠小南 2019年12月17日
用 websocket 不是简单多了,客户端加个心跳 断了就重连 即可
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告