2011-03-25 37 views
1

很抱歉的神秘称号,奋力总结单行我的问题......Web应用程序的客户端浏览器套接字通信 - 最佳方法?

我想一个在线部署,托管网站,成为一系列远程终端将配备芯片&引脚支付卡读者(aka pinpads)。在由第三方编写的终端内的PC上的一些软件驱动小键盘。该软件支持的集成方法是基于文本文件或基于套接字的“请求”和“响应”工作流程。

我在过去使用客户端VB脚本实例化客户端COM对象,通过套接字连接与本地第三方软件进行通信,但这种方法将我与Windows联系起来,我宁愿让我的选项打开。

我的Web服务器将是基于Ruby on Rails和我打算用HTML5和CSS3提供的支付终端丰富的经验,并想知道如果我可以使用Web接口,用于客户端通信?据我所知,这不是他们设计的,所以我认为答案是否定的。

那么,我有什么选择?我可以使用客户端JavaScript来执行套接字通信,或者这是由浏览器安全措施阻止的吗?从浏览器的角度来看,它将与“本地主机”上的特定编号端口进行通信

如果套接字通信是不可能的,我可以使用JavaScript来创建客户端文本文件来整合这种方式吗?

还是我坚持与VB脚本和本地COM对象?

任何建议将是最受欢迎的,请让我知道你是否需要澄清我的问题的任何方面。

亲切的问候, 克雷格。

回答

1

我不认为你可以写JavaScript的一个文本文件。而且你也不能在套接字上放置任意字节。我不完全了解你的情况。这听起来像你在服务器和JavaScript上运行Ruby,而在客户端上运行这个第三方pinpad。而且你需要两个客户实体能够相互交谈。您可以让浏览器与您的Ruby服务器通信(使用许多Web技术之一),然后让您的Ruby服务器将数据传递回pinpad套接字。或者是pinpad只有一个本地套接字?

+0

嗨,是的,我有Ruby On Rails在托管服务器上运行,通过在客户端机器上运行的pinpad(销售点终端)提供大量的网站功能,第三方软件在客户端上运行,监听传入的命令。客户端正在运行浏览器(当前为IE8),并且当前使用VBScript来实例化自定义ActiveX COM对象,以通过本地套接字连接控制引脚板。我正在寻找更好的解决方案。我希望澄清。谢谢! – craig1410 2011-03-29 20:48:07

+0

如果pinpad的东西只能听localhost并读取本地文件,那么你必须做类似你正在做的事情。 ActiveX,Java,Flash或Silverlight。看来ActiveX是最糟糕的选择,因为它只能在IE中使用,并且已被弃用。 – Fantius 2011-03-30 16:37:05

+0

是的你是对的,我只使用ActiveX,因为我已经熟悉它了。我是一名Java程序员,所以我想我会考虑作为一种选择。上面的Travis Webb建议的浏览器插件选项也是可能的,但Java是我的首选。再次感谢。 – craig1410 2011-04-02 16:59:34

1

允许在运行JavaScript的标准网页上打开的基于套接字的连接的唯一类型是HTTP套接字。如果您开发一个用JavaScript编写的浏览器插件,您将拥有更多使用套接字的自由。我知道,Firefox支持扩展插槽。

https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISocketProvider

+0

嗨,感谢您的建议 - 如果我找不到更好的方法,我可以仔细研究一下。如果可能,我希望避免任何专有解决方案,以保持平台和浏览器选项的可用性,但这可能是不可能的。再次感谢。 – craig1410 2011-03-29 20:49:38

+1

我会为你澄清:在设计上,它**不是**可能的。浏览器专门设计为不允许此类套接字通信。 – 2011-03-29 20:51:35

+0

谢谢你 - 收到响亮而清晰! ;-) – craig1410 2011-03-29 20:55:56

相关问题