#php #node.js #communication
#php #node.js #Информационные материалы
Вопрос:
До сих пор я использовал websockets для связи между nodejs и php. Я создал сервер websocket в nodejs, который прослушивает какой-то пользовательский порт.
Затем в php-скрипте я использовал stream_socket_client()
и связанные с ним функции для подключения в качестве клиента. Затем всякий раз, когда мне что-то требовалось от сервера, я отправлял сообщение и ожидал ответа с данными (в формате json). Затем он создаст html-код для отображения этих данных пользователю.
Это работает, однако это не кажется естественным, и мне было интересно, есть ли лучшие варианты. Веб-сайты предназначены для Интернета, как следует из названия, но я использую их для локального сервера и скрипта
Я должен упомянуть, что сервер должен иметь возможность общаться с несколькими клиентами одновременно, потому что веб-сайт может иметь несколько посетителей. Модули nodejs websocket предлагают эту возможность. Но ему не нужно поддерживать связь, потому что php-скрипт только делает свое дело и останавливается.
Комментарии:
1. Зачем вам нужен PHP? Node.js может все, что делает PHP, намного быстрее и, вероятно, лучше.
2. Я собирался сказать то же самое… почему у вас есть два языка на стороне сервера на ходу, по-видимому, как часть одного и того же приложения? Похоже на какой-то архитектурный кошмар.
3. полностью перейдя к узлу its в списке «задачи». К сожалению, клиент колеблется, поэтому мне нужно делать по одному шагу за раз. Сначала я перемещаю файловый ввод-вывод и базу данных в узел, а затем, в конечном счете, и html
Ответ №1:
Давайте проигнорируем, почему вы используете оба Node.js
и PHP
(что может быть источником вашего плохого самочувствия), и сосредоточимся на вопросе RPC.
Выбирая подход RPC, вы должны учитывать и сравнивать различные аспекты каждого подхода, см. Мой контрольный список.
Контрольный список
Это помогает мне выбирать подходы.
Время выполнения:
- Скорость
- Память
- Стабильность
Время разработки:
- Время
- Трудность
- Возможность тестирования и/или отладки
Вывод
Учитывая вышесказанное, насколько я понял, ваш текущий подход к веб-сокетам выполнил все контрольные вопросы, такие как:
Время выполнения:
- Скорость:
localhost
подключение занимает0
мили-сек. - Память: около
2 MB
(освобождается после каждого запроса). - Стабильность: Веб-сокеты используются во всем мире, и если что-то стабильно, то это локальный веб-сокет.
Время разработки:
- Время: Оно уже разработано.
- Трудность: Это хорошо известно.
- Тестируемость и/или отлаживаемость: Тестируемость с помощью обоих
PHPUnit
и/или чего бы вы ни использовали для тестированияNode.js
кода.
Пожалуйста, оставайтесь с веб-сокетами, потому что даже если вы разработаете какой-то пользовательский протокол, он нарушит более одного пункта в показанном контрольном списке.