Вот уже долгое время не могу понять в чем смысл сокетов. Очень часто слышу фразы "Хочу создать сокет сервер", "Хочу написать сокет-клиента!" А вопрос, нафига оно нужно? Я сколько читал, то ли я ничего не понимаю в сокетах то ли они реально какие то галимые. Сокет клиент может отправлять данные на удаленный сервер а сокет сервер обрабатывать данные которые прислал ему сокет-клиент. А теперь внимание вопрос -> Я могу сделать это курлом? Да. Да куда там курл, я так же могу отправить $_POST запрос на удаленный сервер который так же обработает мой запрос и вернет мне ответ без всяких сокетов. Слышал что чаты всякие делают на сокетах, но смысл уловить не могу почему именно "сокеты" а не обычные запрос-ответы? Возможно я недалекий в этой теме поэтому прошу помощи. Объясните пожалуйста что к чему, а то вот я всё никак недопетрю
Сокет - это установленный канал связи между узлами. Не сессионный, а постоянный. Когда вы общаетесь во вконтактиковом мессенджере, вы видите, когда собеседник пишет вам сообщение, вам не надо обновлять страницу, чтобы получать от него сообщения. Вы как будто сидите в скайпе или аське. Да, скайп и аська, внезапно, тоже работают именно через сокеты. Без сокета сервер не может ничего вам отдать, если вы не сделаете запрос. Да, можно дрочить сервер аяксом каждую секунду, но, позже вы поймете, что это не совсем правильно, ДДОСить самого себя через своих посетителей. Если вам сокеты не нужны - не используйте. Не надо делать что-то ради этого самого.
Ну я понимаю что аяксом пинать постоянно сервер это дурной подход, но и пример постоянного соединения я тоже не встречал... разве что типа while(true) или типа того. Разве такой подход менее накладный для сервера? В мануале тоже нет нормальных разъяснений. Если кто может приведите пожалуйста пример запрос-ответа на сервер в реалтайме с помощью сокетов, буду рад взглянуть Добавлено спустя 9 минут 25 секунд: И ещё вот что не ясно... возьмем пример переписки из вконтактика -> мы отправляем POST запрос аяксом(<form> как я понимаю не катит т.к страница будет перезагружаться) когда сами хотим отправить сообщение а по тому пути где ожидается POST запрос просто крутится while и отдает постоянно один и тот же контент тому кто ждет сообщение независимо от того появилось ли новое сообщение или нет? А если контент появился тогда он добавляет его к предыдущему своему ответу и таким образом формируется реал-тайм общение? так что ли?
igordata, понятно, спасибо, но как быть с организацией? Хочу написать хотя бы маленький сервер-клиент который продемонстрировал бы на реальном примере как все это работает... а то многие говорят "Вот сокеты, классная штука!" а нигде нормального объяснения и примеров нет. Одни копии с мануала где толком ничего не понятно по этой теме.
Я слышал про NodeJS, но меня интересует именно php и не потому что я фанат сокет серверов на php, а именно в первую очередь интересует эта возможность как возможность языка php. Вопрос из категории "Как это работает на php? Какие есть более эффективные способы для организации клиент-сервера с использованием сокетов на PHP?". Ну вот хоть убейте я не нашел нормального примера и объяснения этой темы в интернете. А очень хочется знать
сейчас глянул про NodeJS, а что это получается, на JavaScript можно писать сайты? т.е. использовать JavaScript как серверный язык (как php)?
Зачем же я тогда учил PHP? И где автор этой темы был с этой темой раньше, когда я только выбирал что учить. Шутка конечно, но доля правды в ней есть, я бы изначально учил только JS + NodeJS, зачем знать 2 языка PHP и JS , если можно только один - JS . Или я чего то недопонимаю?
Я был там уже, но этого мне не хватило для построения общей картины... но все же спасибо за ссылку Попробую перечитать, может "запахался" слишком, поэтому чуть подтармаживаю Думаю да. Я не очень хорошо знаком с nodeJS, но думаю это всего лишь технология заточенная под конкретные задачи и написать полноценный сайт любой сложности с использованием одного Nodejs не получится. Может сокет сервер будет более выгодным написать на nodejs в плане ресурсозатраты а не на php. Видел чуток кода на nodejs, единственное сходство с js которое я нашел это только синтаксис. Так что пхп учил ты не зря.
получится на nodejs написать всё что угодно. вопрос только в количестве времени. нода молода. через пяток лет на ней будет удобно делать что угодно. только вот язык javascript по сравнению с пхп это каменный век.
Как я понимаю под nodejs необходимы специальные хостинги (как например для ASP.NET), которые днем с огнем не найдешь, а бесплатные и подавно.
Я надеюсь, что он вырастет под текст, как пхп, что приведёт реально к тому, что надо будет учить только один язык и всё станет гораздо прозрачнее. Граница между сервером и клиентом изрядно пошкрябается. Плюс к этому я еще молюсь на наступление js на десктопы и мобильники.
На мобилах UI сейчас на WP и MeeGo работает на JS. И в приложениях тоже, разумеется. Возможно, на андройде его поддержка есть. Про iOS не скажу.
да, пока это эксперименты на живых людях. я вижу в js язык будущего. Но я надеюсь он обретёт хотя бы конкатенатор. Хотя это убьёт совместимость, поэтому видимо этого не случится никогда. а жаль.
Ды как эксперименты.. на JS там только UI. Логика на С++. Хотя в MeeGo есть QML-приложения вообще без плюсового кода. На чистом JS по сути.
Прошло почти 6 лет, что вы можете сказать про эту свою фразу: "Пока это эксперименты на живых людях. я вижу в js язык будущего."