2010-08-24 4 views
1

1 Предположим, что мой IP-адрес компьютера - 111.11.111.11, а сервер, на котором работает мой php-скрипт, - 222.22.222.22, поэтому, если я получаю и запускаю php-скрипт, который находится на сервере, и запускает сервер сокетов, который ip, с которыми мои клиенты должны подключиться?Вопросы о сокетах в php?

2 Возможно ли иметь сокет, работающий на php, который продолжает читать и отвечать на запросы клиентов, пока я не закрою браузер. Поэтому в основном я пытаюсь запустить сокет, который продолжает читать, и принимать клиентов и поддерживать связь с ними несколько раз с каждым.

благодарит за ответ, но я думаю, что не очень хорошо объяснил свой вопрос 2, поэтому позвольте мне сделать это проще: Возможно ли создать чат-сервер с использованием php? потому что точка, в которую я входил, заключалась в том, что можно принимать несколько клиентов и держать их в курсе.

ответ

1
  1. 222.22.222.22. Но похоже, что вы запускаете сервер сокетов в ответ на HTTP-запрос. Вероятно, это не будет работать так, как предполагалось, поскольку интерпретатор PHP завершается после отправки ответа. Если у вас есть разрешения, вы можете разблокировать отдельный процесс сокета-сервера, но я не знаю, что бы это сделало.

  2. Нет. Даже если вы продолжаете работать с интерпретатором, нельзя сказать, когда браузер закрывается. Самое близкое, что вы можете получить, это определение браузера (как определено куки-файлами или IP-адресом), перестает связываться с вами.

1

1- 222.22.222.22, IP-адрес вашего сервера.

2- Когда посетитель прибывает, вы можете запустить «процесс сокета» и реализовать приложение «heartbeat» на стороне клиента с использованием JavaScript/AJAX, но это означает, что вы долго выполняете скрипт сокета (возможно), который может вызвать проблемы (например, если у вас открыто много процессов PHP, в зависимости от способа настройки вашего веб-сервера это может вызвать проблемы)