Вопросы о веб-сокетах - PullRequest
       14

Вопросы о веб-сокетах

3 голосов
/ 22 июня 2010

У меня есть пара вопросов, касающихся веб-сокетов .

В последних версиях Firefox 4.0 поддержка веб-сокетов. Как и Webkit (Chrome 4 + Safari 4/5). Internet Explorer 9 должен иметь веб-сокеты в какой-то момент, согласно Microsoft (до стабильной версии).

В любом случае, мои вопросы:

  • Я создаю интерфейс администратора JavaScript для управления веб-сайтом. Должен ли я использовать веб-сокеты для связи клиент-сервер вместо XMLHttpRequest, если я сказал вам, что мне не нужно заботиться о совместимости браузера?

  • Приведет ли веб-сокет к более быстрым вызовам сохранения, удаления и обновления по сравнению с обычной ситуацией с XMLHttpRequest? Будут ли запросы более мгновенные ?

  • Мне известны HTML5 navigator.online и window.addEventListener('offline', ...), но с помощью веб-сокетов (при потере соединения) я могу более точно и быстро обнаруживать проблемы с подключением? Я имею в виду, что когда я отключаю свое подключение к Интернету или блокирую его с помощью своего брандмауэра, Firefox все еще утверждает, что navigator.online равно true . Кажется, что при использовании веб-сокетов соединение с сервером будет потеряно мгновенно, поэтому я могу более точно определять проблемы с подключением?

  • Могу ли я поддерживать серверную часть веб-сокетов с pure PHP, чтобы код был переносимым с другими веб-серверами ( no необходимо установить любые модули Apache или сделать другие настройки). Я хотел бы распространять программное обеспечение в нескольких местах без необходимости просить людей устанавливать всевозможные модули в их HTTPD или около того.

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

1 Ответ

5 голосов
/ 24 июня 2010

Я создаю интерфейс администратора JavaScript для управления веб-сайтом. Должен ли я использовать веб-сокеты для связи клиент-сервер вместо XMLHttpRequest, если я сказал вам, что мне не нужно заботиться о совместимости браузера?

Мне кажется, что вы хотите использовать WebSockets только ради этого. Основная причина использования WebSockets - это когда вы хотите передать данные с сервера на клиент. Если вашему приложению это не нужно, вам, вероятно, не следует использовать WebSockets.

Приведут ли веб-сокеты к более быстрым вызовам сохранения, удаления и обновления по сравнению с обычной ситуацией с XMLHttpRequest? Будут ли запросы более мгновенными?

Вы могли бы сэкономить некоторое время на обоих концах (клиент и сервер) из-за отсутствия заголовков. Но выигрыш, вероятно, довольно маленький.

с веб-сокетами (при потере соединения), могу ли я точнее и быстрее обнаруживать проблемы с соединением?

Да, событие срабатывает мгновенно, когда WebSocket закрывается. Альтернативами могут быть длинные опросы или периодические XHR. Или событие на стороне клиента.

Можно ли поддерживать серверную часть веб-сокетов на чистом PHP, чтобы код был переносимым с другими веб-серверами

Сначала я предлагаю вам прочитать это . WebSockets не очень хорошо работают синхронно. PHP и apache не очень хорошо работают в асинхронном режиме. Хотя там являются некоторыми реализациями , многие из них устарели. Я лично использовал бы для этого другой язык, такой как ruby ​​, python , java или javascript на стороне сервера . Просто потому, что языки лучше поддерживают асинхронную модель, а реализации WebSocket более сложные.

Протокол WebSocket в настоящее время все еще является черновиком, он может измениться. Точно так же, как это было несколько недель назад . Так что ваш код может очень сильно сломаться.

Мой совет: не используйте WebSockets только ради этого. Если у вас есть приложение, управляемое событиями в реальном времени, то это, вероятно, правильный выбор. Убедитесь, что вы понимаете, для чего нужны WebSockets и что нужно на стороне сервера, в том числе с точки зрения приложений, управляемых событиями. Не используйте его для производства чего-либо, оно слишком хрупкое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...