问题描述
用网站给硬件发送tcp请求1.发送登陆指令2.发送控制指令用网站发送请求连接会断开。一直返回要求登陆的指令。请问网站怎么实现这个功能,还是要做中间件?
解决方案
解决方案二:
登录指令返回什么?你是在登陆之后才发送指令,还是乱序?什么叫做“做中间件”?做与不做什么中间件还不是一样的东西。
解决方案三:
另外做一个windowsservice和下位机通讯,共享数据库给asp.net
解决方案四:
其实这只是一个ASP.NET的生命周期的问题,当前端post给后台,后台处理完成以后,就会自动断开。每次都是一个新的实例,因此后台通过Socket与硬件通讯肯定也会断开的。而针对这样的情况,只能如3L所说的,后台用一个Service监控队列(如MSMQ),然后监测到有数据,就往硬件发送消息。而没有监控到,也不断开与硬件的通讯。而ASP.NET仅只需要往队列中发送消息就行了。
解决方案五:
引用3楼jjkk168的回复:
其实这只是一个ASP.NET的生命周期的问题,当前端post给后台,后台处理完成以后,就会自动断开。每次都是一个新的实例,因此后台通过Socket与硬件通讯肯定也会断开的。而针对这样的情况,只能如3L所说的,后台用一个Service监控队列(如MSMQ),然后监测到有数据,就往硬件发送消息。而没有监控到,也不断开与硬件的通讯。而ASP.NET仅只需要往队列中发送消息就行了。
意思就是我还需要做一个例如winform的东西来发送协议,公用一个数据库,网站只是用来显示这些设备的状态是吧。
解决方案六:
你也可以做成短连接的也就是说,每次要给设备发送指令,都先登陆,接收到反馈之后,就断开连接,而不要企图保持什么长连接
解决方案七:
引用5楼Z65443344的回复:
你也可以做成短连接的也就是说,每次要给设备发送指令,都先登陆,接收到反馈之后,就断开连接,而不要企图保持什么长连接
当然,这种方式如果并发数非常高的话,是会出问题的每个用户登陆系统都去操作设备,同时有很多个线程都给设备发指令,估计逻辑会出问题如果并发数高,那么你需要在网站上将请求写入队列,然后另一个服务程序从队列里取出请求,顺序的给设备发指令
解决方案八:
感觉好复杂呀,帮顶下
时间: 2024-09-20 00:58:15