请教一个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->商家收银电脑
中间不知道用什么技术传递消息。
...全文
281 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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 不是简单多了,客户端加个心跳 断了就重连 即可

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧