我有一个基于Web的拣货/包装解决方案用于交付订单(asp.net/c#)。在浏览器中将订单标记为已包装,然后立即将标签信息添加到我们的数据库中,准备进行下一步操作...
标签打印是通过Windows应用程序(用C#编写)完成的,因为我找不到让浏览器自动打印标签(即无需用户单击打印/确定等按钮)的方法。
问题:
Windows应用程序每10秒轮询一次(可能会更改),以查看是否有任何新的拣货员/包装员的标签。现在,如果我能让浏览器与标签应用程序通信,则轮询将是不必要的,因为拣货员/包装员只需单击“准备发货”即可创建标签数据。
轮询过程中拉取的数据并不多,但我担心随着我们增加更多的拣货员/包装员站点,轮询过程可能会对Web服务器/数据库产生连锁反应(因为所有站点都会轮询)。此外,拣货员/包装员不想在等待标签时等待,因此无法延长轮询时间(如果可以,我希望它尽可能快)。
解决方案:
因此,理想情况下,我希望有一种在浏览器和应用程序之间进行通信的方法(如果可能)。或者任何消除轮询需求的方法。也许类似于Comet的东西,允许服务器在添加新标签时向应用程序发送消息。
理想情况下,不需要特定的浏览器即可解决问题。但这可能要求太多了。
长期解决方案是将基于Web的拣货/包装解决方案移动到标签应用程序中,但那将是很多工作!
希望这清晰明了,不会太啰嗦。如果我可以在这里添加任何其他细节,请告诉我。先感谢您。
编辑:
正在考虑WebSocket作为一个想法。欢迎提供任何建议!
更新:
感谢所有评论。现在我有一些关于如何解决问题的想法:
标签打印是通过Windows应用程序(用C#编写)完成的,因为我找不到让浏览器自动打印标签(即无需用户单击打印/确定等按钮)的方法。
问题:
Windows应用程序每10秒轮询一次(可能会更改),以查看是否有任何新的拣货员/包装员的标签。现在,如果我能让浏览器与标签应用程序通信,则轮询将是不必要的,因为拣货员/包装员只需单击“准备发货”即可创建标签数据。
轮询过程中拉取的数据并不多,但我担心随着我们增加更多的拣货员/包装员站点,轮询过程可能会对Web服务器/数据库产生连锁反应(因为所有站点都会轮询)。此外,拣货员/包装员不想在等待标签时等待,因此无法延长轮询时间(如果可以,我希望它尽可能快)。
解决方案:
因此,理想情况下,我希望有一种在浏览器和应用程序之间进行通信的方法(如果可能)。或者任何消除轮询需求的方法。也许类似于Comet的东西,允许服务器在添加新标签时向应用程序发送消息。
理想情况下,不需要特定的浏览器即可解决问题。但这可能要求太多了。
长期解决方案是将基于Web的拣货/包装解决方案移动到标签应用程序中,但那将是很多工作!
希望这清晰明了,不会太啰嗦。如果我可以在这里添加任何其他细节,请告诉我。先感谢您。
编辑:
正在考虑WebSocket作为一个想法。欢迎提供任何建议!
更新:
感谢所有评论。现在我有一些关于如何解决问题的想法:
- Websockets。由于我无法轻松访问系统(地理距离),可能存在防火墙问题。
- 从应用程序中读取浏览器cookie。可能的解决方案http://www.codeproject.com/Articles/330142/Cookie-Quest-A-Quest-to-Read-Cookies-from-Four-Pop。这涵盖了仓库中使用的所有浏览器。我可以轮询本地cookie值,查看是否创建了任何新标签,然后下载它们。因此,无需在数据库服务器上轮询。
- ActiveX控件。仅限于IE,并且在每台PC上安装时可能会有一些安全/设置问题。
- 保留代码不变。判断对数据库服务器的负载是否过重或正常。