我强烈建议您在此时重新考虑Zebra websocket解决方案。
最好的解决方案仍然可能是迷你网络服务器解决方案。
我与斑马的WebSocket解决方案的经验: 背景:
我最初尝试创建一个Node.js的解决方案(我在几个地方的任何服务器是可行读过)。 但是,即使在获得Zebra签署的证书后(即打印机/服务器经历了成功的握手过程),连接尝试失败后,它仍然失败并出现一个模糊的错误,当检查与打印机试图验证特定Tomcat版本/服务器正在使用!!!
我确实得到了Zebra开发人员的答复,他正在开发.Net解决方案,但也无法使其正常工作,并且在他们完成解决方案之前等待来自Zebra'工程师'的进一步信息。他们表示,他们会在发送信息时发送信息,并希望在一周内得到信息(超过一周 - 没有运气)。
所以 - 我决定组装一个Tomcat服务器 - Zebra正在工作的唯一例子...我得到了servlet运行的示例,但开始出现新的证书问题(因为我更改了服务器/域等) 我想到了整个笨重的过程 - 并认识到1交易断路器 - 非常严格的ssl身份验证和签名过程风险太大。
E.g.假设您有100多个客户依靠此解决方案。 如果您遇到证书问题(例如,域名更改,服务器设置更改或证书失效/失效) - 则所有100+客户都没有打印机。 但是你不能自己修复它 - 修复/生成一个新的证书等重新签名过程是缓慢的,并依赖于外部资源! (这是一个手动的Zebra过程btw - 您通过电子邮件发送,然后在Zebra员工用签名证书进行响应之前,您将等待相当长的时间)。
这意味着所有100多个客户在相当长的时间内都没有打印机服务,但您没有选择,只能让Zebra在您的证书上签名。对我来说这是一个不可接受的风险 - (websocket解决方案不应该依赖Zebra签名的证书 - 在您安装您的(或您的客户端)打印机之后,您将打印机配置为指定一个EXACT域名/地址连接到)。
如果您的迷你服务器解决方案 - 如果客户有问题 - 它只会影响单个客户,而且您不依赖外部公司签署证书来解决问题。
以下是已识别的问题及其相关风险。
问题1)执行得很差 - 我不能(也不能)让它连接到一个非常特定的Tomcat设置以外的标准服务器! 风险水平:低 - 即这是一个初始成本和时间负担 - 但一旦处理这个问题导致进一步问题的风险最小。 风险: a)将开发限制在非常具体的服务器和技术上。 b)增加初始开发/测试的时间和成本。
问题2)记录不完整 - 我已经确认(和斑马已经验证过)文档中的几个错误 - 文档中也散布着重要的信息,很难找到与文档其余部分分开的readme.txt文件。 风险水平:低 - 即这是一个初始成本和时间负担 - 但一旦处理这个问题导致进一步问题的风险最小。 风险: a)减缓最初的发展。 b)增加初始设置/开发的时间和成本。
问题3)打印机安全/ ssl认证计划和实施不善。它涉及多个步骤 - 极其严格,涉及缓慢的斑马签署过程,造成持续的风险。 风险等级:高 - 即这是我们无法使用此解决方案的原因。 风险: a)将开发限制在非常具体的服务器和技术上。 b)减缓最初的发展。 c)增加初始设置/开发的时间和成本。 d)对项目造成持续高水平风险,如下所示: --->这个想法是,一家公司将依靠这种打印机连接解决方案 - 因此任何潜在的停机时间都将导致重大业务中断。 --->以下任何一种情况都意味着所有依赖此websocket解决方案的客户将在新的Zebra签署的证书组织成功后几天内不提供打印机服务: ---> 1)证书过期,2)证书失效,3)服务器被移动,4)域详细信息改变,5)Tomcat服务器设置被修改(由于打印机验证某些Tomcat /服务器设置的方式) --->另外,上述5个方案仅基于我的测试到目前为止 - 可能还有其他可能的限制,这可能意味着我还没有遇到的证书失败。
总结: IMO问题3带来了不可接受的风险,在重新考虑Zebra websockets之前需要做以下两件事情。 1)他们需要正确的文档说明WebSockets如何连接到服务器,因为它是隐藏的,甚至斑马的员工目前都处于黑暗中。 2)他们需要删除一些身份验证限制 - 以便您可以解决任何问题而不需要耗时的Zebra交互。
贾森!你是男人!我用斑马线在电话上花了2个小时,他们不知道我在说什么。我没有任何解决方案可以让我从没有PC的A点到B点获取信息。我想我会尽快购买其中的一种。你知道任何有关websockets的文档吗?从我简短的搜索中我发现它还没有被标准化。我想在我的服务器端使用PHP。看起来我会在LinkOS上编写应用程序,通过websocket与我的服务器进行通信。你可以提供的任何附加信息显然是非常有价值的。 – Mark 2013-03-06 22:32:05
我相信Websockets被认为包含在HTML5的保护伞下。使用Zebra打印机,所有websocket连接都通过TLS进行保护,因此希望能够减轻您的安全隐患。因为Zebra SDK会将所有WebSocket设置从您身上抽象出来,所以Websocket教程并不是您必需的。您只需将打印机配置为指向您的Web应用程序(使用Zebra SDK)。 SDK是用Java编写的,我不知道如何将它与PHP集成。我只用了Apache Tomcat和一个Java Web应用程序。 – 2013-03-07 01:21:54
要清楚 - Zebra打印机提供了许多技术,包括为出站通信编程打印机本身(请向经销商了解ZBI)。我不知道ZBI是否可以通过websockets进行通信。如果ZBI不支持websocket通信,那么您的打印机将实际上是一个“奴隶”打印机,它只会按照所告知的进行操作。它将无法向服务器询问任何内容;相反,服务器必须强制信息下达到打印机。使用websockets,这是微不足道的。但是,如果没有ZBI,打印机不能被“编程”来询问数据。 – 2013-03-07 01:27:37