Разговор с PHP-демоном - PullRequest
2 голосов
/ 15 марта 2012

Я разрабатываю небольшой серверный демон в php, который будет взаимодействовать с различными удаленными клиентами - достаточно просто.Однако другому демону, работающему на той же машине, необходимо будет связаться с первым как можно быстрее, но, возможно, будет отправлять несколько сотен КБ данных постоянно (возможно, в пределах 20 HTZ).Я весьма уверен, что захочу использовать tcp-соединение между этими двумя демонами, но здесь мне нужен совет.Теперь, прежде чем вы спросите, я не могу просто объединить оба в один и тот же демон, потому что второй может и будет написан на одном из нескольких языков, включая java, .net, c ++, python, ruby ​​и т. Д. Если есть способзаставить PHP говорить на другом языке без использования tcp-соединения (или с помощью системного вызова, который не будет работать для моих нужд) и без ущерба для производительности, я весь слух, но я искал способ сделать это иЯ не могу найти простой и понятный способ сделать это - по крайней мере, не по принципу «один размер подходит всем».

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Поскольку другой процесс будет на той же машине, как насчет использования proc_open(), тогда вы просто пишете / читаете из созданных каналов (stdin / stdout и т. Д.)?

Это похоже на вызов system() / popen(), но позволяет читать и записывать в другой процесс, и, конечно, накладные расходысокет TCP не используется.

1 голос
/ 15 марта 2012

Вы можете использовать розетки.У PHP есть реализация сокетов: http://www.php.net/manual/en/ref.sockets.php

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

В PHP вы должны использовать socket_bind() для подключения к сокету.Точно так же вам нужно будет сделать то же самое с другим демоном.

...