У меня проблема с дизайном, связанная с отправкой пользовательских данных из приложения для мобильного телефона на сервер (Debian 5 LAMP). Мне нужно отправить различные данные, такие как имя пользователя, дата рождения, номер заказа клиента. и т. д. Они будут переданы приложению с кодом C (всегда в процессе), работающему на сервере.
В настоящее время я использую именованные каналы для IPC между моим внешним мобильным приложением и процессом сервера кода C. У меня есть проблема с разрешениями для этого метода связи, но вместо того, чтобы просто попытаться решить эту проблему, мне было интересно, есть ли у меня правильный подход в первую очередь!
Во-первых, мне было интересно с точки зрения дизайна и безопасности, является ли это приемлемым методом IPC в этом случае, или СЛЕДУЕТ ли мне записывать данные в базу данных, а затем запускать задание cron, которое считывает новые записи из базы данных, а затем отправляет их на серверный процесс.
С моим текущим методом я обеспокоен тем, что, если несколько пользователей одновременно обновляются, некоторые могут не получить доступ к каналу, поэтому, возможно, записи должны быть поставлены в очередь, поэтому в этом случае выборка записей из базы данных может решить это.
Единственное, что меня беспокоило в связи с этим решением для баз данных, - это задержка между получением данных с мобильного телефона и приложением и его передачей, если только задание cron не запускалось каждые 10 секунд, но затем оно могло бы выполняться без необходимости, когда нет новых записи.
Не имея большого опыта на стороне сервера, мне просто было интересно, есть ли какие-либо стандартные решения для этой проблемы.
В настоящее время я использую следующий php-код (вызывается из apache) для связи с процессом сервера
$pipe="/tmp/pipe";
$mode=0600;
if(file_exists($pipe))
{
$f = fopen($pipe,"w");
$result = fwrite($f,"some string");
echo $result;
}