Подтвердить что ты не робот

Сложности Websocket

Это сложный и не обязательно один вопрос. Я был бы признателен за любую возможную помощь.

Я читал, что есть возможность иметь веб-сайты без доступа к серверу, но я не могу найти примеров, показывающих, как это происходит. Я пришел к такому выводу (который, я считаю, мне нужен), основываясь на следующих двух вещах:

  • В течение нескольких часов я пытался изо всех сил пытаться выяснить, как даже заставить веб-сайты работать с сервером WAMP, который у меня есть на моей машине, и у меня есть root-доступ. Установленный композитор, но не может понять, как установить файл composer.phar для установки храповика. Попробовали другие реализации PHP websocket (предпочли бы, чтобы это было в PHP), но все равно не могут заставить их работать.

  • Мой текущий веб-хост, который я использую для проверки, - это бесплатный хост и не разрешает доступ к SSH. Таким образом, даже если бы я мог понять, что получить websockets с правами доступа root, это спорный вопрос, когда дело доходит до хоста.

Я также нашел бесплатные VPS-хосты при помощи googling (конечно, все ограничил), но имеет полный доступ к root, но я бы предпочел сохранить что-то, что позволит увеличить пропускную способность (мой бесплатный хост в настоящее время неограничен). И я прочитал, что вы можете (и должны) размещать сервер веб-сервера на другом подобласте, чем HTTP-сервер, и что он может даже запускаться в другом домене целиком.

Кроме того, в конечном итоге может быть дешевле разместить мой собственный сайт, конечно, не имеет никакого реального понятия об этом, но в этом случае мне нужно будет выяснить, как даже получить веб-сайты, работающие на моей машине.

Итак, если кто-то может понять, о чем я спрашиваю, несколько вопросов здесь, можно ли использовать веб файлы без доступа root, и если да, то как? Как правильно установить храповые websockets, когда я не могу понять файл composer.phar(у меня есть композитор .json с храповым кодом, но не уверен, что он в правильном каталоге), и этот вопрос заключается в том, что первый вопрос не является действительно возможно. Возможно ли иметь сервер websocket на VPS и иметь HTTP-сервер в совершенно другом домене, и если да, есть ли там какая-либо документация?

Я имею в виду, конечно, есть возможность использовать AJAX и заставлять браузер перезагружать JS файл каждый период времени, который будет использовать jQuery ajax для обновления серии div независимо от того, было ли что-либо изменено, но это может усложниться, и я даже не уверен, что это возможно (я не понимаю, почему это не так), но потом я предпочел бы websockets над этим, так как я слышал, что они намного менее ресурсоемкие, чем некоторые вроде этого абзаца будет.

4b9b3361

Ответ 1

Простой файл PHP, работающий под ванильным LAMP (то есть mod_php под Apache), не может обрабатывать соединения WebSocket. Он не сможет выполнить обновление протокола, не говоря уже о фактическом взаимодействии в реальном времени, по крайней мере, через Apache. Теоретически у вас может быть очень длинный веб-запрос к файлу PHP, который запускает TCP-сервер для обслуживания запросов WebSocket, но это нецелесообразно, и я сомневаюсь, что общий хост действительно позволит PHP сделать это.

Могут быть некоторые общие хосты, которые делают возможным размещение WebSocket с PHP, но они не могут предложить это без доступа к SSH/shell или каким-либо другим способом запуска PHP за пределами веб-сервера. Если они просто предоставляют вам каталог для загрузки файлов PHP и обслуживания их с помощью Apache, вам не повезло.

Что касается проблем с Composer, я не знаю, можно ли запускать composer.phar на общем хосте без какого-либо доступа к оболочке. Некоторые хосты (например, Heroku) имеют определенную поддержку Composer.

Что касается запуска сервера WebSocket в совершенно другом домене, вы действительно можете это сделать. Просто укажите свой JavaScript для подключения к этому домену и убедитесь, что сервер WebSocket предоставляет необходимые заголовки совместного использования ресурсов Cross-Origin.

Ответ 2

ОК... у вас есть несколько вопросов, поэтому я постараюсь ответить им один за другим.

1. Что использовать

Вы можете использовать Socket.IO. Его библиотека для разработки веб-приложений в реальном времени на основе JavaScript. Он состоит из двух частей - клиентской стороны (выполняется в браузере посетителей) и на стороне сервера. Основное использование не требует почти каких-либо фоновых знаний на Node.js. Вот пример учебника для простого приложения чата на официальном сайте Socket.IO.

2. Хостинг

Большинство хостинг-провайдеров имеют панель управления (cPanel) с возможностью установки/активации различных плагинов Apache и т.д. Сначала вы должны проверить, не доступен ли Node.js, если вы не можете связаться со службой поддержки и спросите их, включит ли это это вариант.

Если вам не повезло с вашим нынешним хостинг-провайдером, вы всегда можете быстро переключать хосты, так как там есть много хороших предложений. Google определенно поможет вам здесь. Вот список, содержащий несколько (возможно) лучших вариантов. Имейте в виду, что, хотя некоторые хостинговые сделки могут быть оплачены, есть много вариантов низкой стоимости на выбор.

3. Пропускная способность

Поскольку вас беспокоит "ресурсный голодный" код, возможно, вы можете попробовать разместить часть своего контента на Amazon CloudFront. Это широко используемая сеть доставки контента и гарантирует быстрое соединение и быструю загрузку ресурсов, поскольку файлы загружаются с ближайшего к клиентскому серверу. Лучшая часть заключается в том, что вы платите только за то, что используете на самом деле, поэтому, если у вас нет такого трафика, было бы действительно дешево работать и по-прежнему надежно!

Надеюсь, что это поможет;)