Связь через браузер на стороне клиента для веб-приложения - лучший метод? - PullRequest
1 голос
/ 25 марта 2011

Извините за загадочный заголовок, изо всех сил пытаясь суммировать мою проблему в одной строке ...

Я хочу развернуть размещенный на сайте веб-сайт для обслуживания ряда удаленных терминалов, которые будут оснащены считывателями платежных карт Chip & Pin (так называемые пин-панели). Панели управляются программным обеспечением на ПК в терминале, которое написано третьей стороной. Методы интеграции, поддерживаемые этим программным обеспечением, основаны на текстовых файлах или сокетах с рабочим процессом «запрос» и «ответ».

В прошлом я успешно проводил аналогичные интеграции с использованием клиентского VB Script для создания экземпляров COM-объектов на стороне клиента, которые взаимодействуют через сокетное соединение с локальным сторонним программным обеспечением, но этот подход связывает меня с Windows, и я предпочел бы сохранить свои параметры открыт.

Мой веб-сервер будет работать на Ruby On Rails, и я намерен использовать HTML5 и CSS3 для обеспечения богатого опыта работы с платежными терминалами, и мне было интересно, могу ли я использовать веб-сокеты для связи на стороне клиента? Насколько я понимаю, это не то, для чего они предназначены, и поэтому я думаю, что ответ - нет.

Итак, какие у меня варианты? Могу ли я использовать JavaScript на стороне клиента для выполнения сокетных коммуникаций или это предотвращено мерами безопасности браузера? С точки зрения браузера, он будет взаимодействовать с определенным пронумерованным портом на «localhost»

Если связь через сокет невозможна, могу ли я использовать JavaScript для создания текстовых файлов на стороне клиента для такой интеграции?

Или я застрял с VB-скриптом и локальными COM-объектами?

Любые предложения будут приветствоваться, и, пожалуйста, дайте мне знать, если вам нужны разъяснения по любому аспекту моего вопроса.

С уважением, Крейг.

Ответы [ 2 ]

1 голос
/ 25 марта 2011

Я не думаю, что вы можете написать текстовый файл с помощью JavaScript.И вы не можете положить произвольные байты в сокет либо.Я не совсем понимаю ваш сценарий.Похоже, у вас на сервере загорает Ruby, а на клиенте работает JavaScript, и эта сторонняя программа ввода с клавиатуры.И вам нужно, чтобы две клиентские сущности могли общаться друг с другом.Можете ли вы, чтобы браузер связался с вашим сервером Ruby (используя одну из многих веб-технологий), а затем ваш сервер Ruby ретранслировал данные обратно в гнездо для клавиатуры.Или пинпад только локальная розетка?

1 голос
/ 25 марта 2011

Единственный тип сокетного соединения, которое вам разрешено открывать на стандартной веб-странице, на которой выполняется javascript, - это HTTP-сокет. У вас будет гораздо больше свободы в использовании сокетов, если вы разработаете плагин для браузера, который написан на javascript. Firefox, я знаю, поддерживает сокеты в расширениях.

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

...