RoR + SMS: архитектура веб-приложения Rails для отправки / получения SMS? - PullRequest
5 голосов
/ 29 сентября 2008

Какая архитектура веб-приложения хорошо работает при приеме / отправке текстовых SMS-сообщений? Под «архитектурой я подразумеваю определенную архитектуру, а не вообще, такую ​​как MVC.

Справочная информация: я создаю веб-приложение, которое получает запросы от / отправляет ответы на мобильные телефоны. Дизайн приложения (и бизнес-модель) предполагает связь с мобильными устройствами с помощью текстовых сообщений SMS. IOW: нет веб-страницы MVC "view". Экран мобильного телефона фактически является «представлением».

Ответы [ 3 ]

3 голосов
/ 29 сентября 2008

Я бы спросил, действительно ли это веб-приложение. Если слой представления является SMS, вам не нужно использовать Интернет в качестве транспорта, вы можете использовать оборудование для подключения к сети сотовой связи.

Если вы думаете об использовании коммерческого шлюза http / sms, есть хорошая статья об использовании Ruby Clicktell gem из приложения Rails. Похоже, хороший маршрут, чтобы попробовать.

2 голосов
/ 29 сентября 2008

Это зависит от того, как вы будете получать и отправлять SMS-сообщения.

Существует специальный протокол коротких сообщений (SMPP - http://en.wikipedia.org/wiki/SMPP). Для этого вам понадобится SMPP-сервер.

Если вы используете одного из различных провайдеров SMS через HTTP (например, Clickatell - http://www.clickatell.com),), то такая веб-структура, как RoR, подойдет, поскольку отправка и получение SMS-сообщений фактически являются веб-запросами. В этом случае ваше системное представление - это HTTP-ответ на шлюз, а не экран мобильного телефона. Там на самом деле довольно много шагов: Cellphone -> Cellular Network -> Gateway -> Your Service и ответ: Cellphone <- Cellular Network <- Gateway <- Your Service

1 голос
/ 29 сентября 2008

Я сделал один из них перед использованием рельсов. Я создал бюджетный трекер, на который я мог отправлять команды со своего мобильного телефона. Я использовал его, чтобы создать список предметов, которые мне нужно было купить / позаботиться о предстоящей зарплате. Когда пришла проверка, я отправлял команды, чтобы пометить каждый элемент в списке. Я включил команды для запроса списка, а также. Команды выглядели как «lc mar4», чтобы создать четвертую зарплату в списке бюджета марта. Как только список был создан, я мог отправлять команды без указания списка, и я заставил скрипт просто применить команду к последнему списку, если список не был указан, и сократить другие аргументы. "la court 50 p" также добавит в список mar4 элемент с именем "court" со значением 50 и тегом "p", который я назвал отложенным. В ту пятницу, когда я позаботился о суде, я мог послать «lu court 50 d», который обновил бы пункт суда с тем же значением, что и тег «d», для done. У меня была команда под названием «lp», которая печатала текущий список. «lp d» будет печатать все элементы с меткой «d» в текущем списке. «lsum p» напечатает все ожидающие элементы в текущем списке.

Я сделал пустое приложение для рельсов. Сделал схему базы данных и мои модели, но не имел контроллеров. У меня был сценарий в сценариях, который включал библиотеку pop / ssl, которую я нашел где-то для загрузки электронной почты из учетной записи gmail, которую я настроил для этого. С тех пор это было довольно просто, просто проверяйте новые сообщения для каждого сообщения, убедитесь, что оно пришло с моего мобильного телефона, проанализируйте сообщение и при необходимости отправьте ответ. (Я запрограммировал этот адрес электронной почты на свой мобильный телефон и отправил текстовые команды на этот адрес электронной почты). Я добавил работу cron и запускаю ее каждую минуту.

Я не знаю, что это за архитектура, но в основном это сервис, который запрашивает третье лицо и делает разные вещи в зависимости от ответа. Если вы делали настоящие SMS с короткими кодами, я дам вам знать, что я думаю, что для того, чтобы сделать это по-настоящему, необходимы значительные инвестиции. Может быть проще начать разработку с текстовых сообщений электронной почты через шлюзы sms.

Я не говорю, что это лучший способ сделать это на сегодняшний день. Было бы круче, если бы мне «отправляли» сообщения вместо проверки каждую минуту, но я просто хотел сбалансировать свой бюджет мой телефон.

...