Passion4Code Ответов: 3

Считывание данных последовательного порта из веб-приложения


Существует сценарий, в котором нам нужно интегрировать весовую машину и считывать значение с помощью веб-приложения, созданного в MVC. Теперь код, который у нас есть, работает, когда хост совпадает с клиентом.
Когда мы развертываем приложение на любом другом сервере, то проблема заключается в следующем:
Serial Port as its meta data says only reads for the current computer.

Что я уже пробовал:

Я просмотрел несколько ресурсов, которые говорят, что подойдет приложение windows или ActiveX. Но мой вопрос таков,
ActiveX является специфичным для браузера т. е. только IE
и как мое веб-приложение, размещенное в облаке, будет взаимодействовать с приложением windows?

Любые предложения или пример помогут!
С уважением

Richard MacCutchan

Именно в этом корень проблемы. Веб-приложениям запрещен прямой доступ к устройствам в клиентской системе по очень веской причине.

Passion4Code

Да, правильно. Но любой способ обойти это возможен, я имею в виду через любой носитель?

3 Ответов

Рейтинг:
21

F-ES Sitecore

Если вы отправляете этот сайт выбранным клиентам, то вы можете сделать что-то вроде написания службы Windows, которая отвечает на HTTP-запросы и взаимодействует с аппаратными портами, а затем отправляет HTTP-ответ обратно вызывающему клиенту. Таким образом, ваша веб-страница может использовать обычный jQuery ajax для запроса сервиса и получения данных обратно, которые он затем может передать вашему серверному коду, как обычно (еще один вызов ajax или отправка формы).

Он по-прежнему будет ограничивать клиент Windows и нуждаться в клиентах для установки службы, но это альтернатива разработке приложения ActiveX или апплета jaca или чего-то еще.


Sergey Alexandrovich Kryukov

5ед.
—СА

Рейтинг:
19

Dave Kreskowiak

Веб-приложение было очень плохим выбором. Если масштаб, передаваемый через последовательный порт, не подключен непосредственно к веб-серверу, вы не можете разговаривать с масштабом. Как вы, вероятно, уже поняли, клиентский javascript в браузере не имеет доступа к последовательным портам ПК. Javascript может общаться только с другими веб-серверами.

Итак, вот идея, которая не предполагает полного переписывания вашего приложения для поддержки переписанной клиентской части.

Вы пишете приложение или службу Windows, которая будет иметь доступ к последовательным портам. Приложение может разговаривать со шкалой и получать от нее данные, но также будет действовать как веб-сервер, обслуживая полученные данные и даже принимая команды из вашего клиентского кода javascript. Клиентский код может общаться с веб-серверами только через HTTP, используя свои обычные операции, такие как GET и POST. Ничто не говорит о том, что клиентский код не может взаимодействовать с веб-сервером, работающим на самом клиенте.


Sergey Alexandrovich Kryukov

5ед.
—СА

Рейтинг:
0

Joan Magnet

Другим способом может быть виртуализация ваших последовательных портов с помощью конвертера rs232 в etherenet, но вы должны знать IP-адреса клиентских компьютеров.

Серверы последовательных устройств Moxa