За последние 24 часа нас посетили 59519 программистов и 1857 роботов. Сейчас ищут 1403 программиста ...

В чем преимущество сокетов?

Тема в разделе "PHP для новичков", создана пользователем pircul, 22 янв 2014.

  1. pircul

    pircul Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    100
    Симпатии:
    0
    Вот уже долгое время не могу понять в чем смысл сокетов. Очень часто слышу фразы "Хочу создать сокет сервер", "Хочу написать сокет-клиента!"

    А вопрос, нафига оно нужно? Я сколько читал, то ли я ничего не понимаю в сокетах то ли они реально какие то галимые.

    Сокет клиент может отправлять данные на удаленный сервер а сокет сервер обрабатывать данные которые прислал ему сокет-клиент. А теперь внимание вопрос -> Я могу сделать это курлом? Да. Да куда там курл, я так же могу отправить $_POST запрос на удаленный сервер который так же обработает мой запрос и вернет мне ответ без всяких сокетов.

    Слышал что чаты всякие делают на сокетах, но смысл уловить не могу почему именно "сокеты" а не обычные запрос-ответы? Возможно я недалекий в этой теме поэтому прошу помощи. Объясните пожалуйста что к чему, а то вот я всё никак недопетрю
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Сокет - это установленный канал связи между узлами. Не сессионный, а постоянный. Когда вы общаетесь во вконтактиковом мессенджере, вы видите, когда собеседник пишет вам сообщение, вам не надо обновлять страницу, чтобы получать от него сообщения. Вы как будто сидите в скайпе или аське. Да, скайп и аська, внезапно, тоже работают именно через сокеты. Без сокета сервер не может ничего вам отдать, если вы не сделаете запрос. Да, можно дрочить сервер аяксом каждую секунду, но, позже вы поймете, что это не совсем правильно, ДДОСить самого себя через своих посетителей.

    Если вам сокеты не нужны - не используйте. Не надо делать что-то ради этого самого.
     
  3. pircul

    pircul Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    100
    Симпатии:
    0
    Ну я понимаю что аяксом пинать постоянно сервер это дурной подход, но и пример постоянного соединения я тоже не встречал... разве что типа while(true) или типа того. Разве такой подход менее накладный для сервера? В мануале тоже нет нормальных разъяснений. Если кто может приведите пожалуйста пример запрос-ответа на сервер в реалтайме с помощью сокетов, буду рад взглянуть

    Добавлено спустя 9 минут 25 секунд:
    И ещё вот что не ясно... возьмем пример переписки из вконтактика -> мы отправляем POST запрос аяксом(<form> как я понимаю не катит т.к страница будет перезагружаться) когда сами хотим отправить сообщение а по тому пути где ожидается POST запрос просто крутится while и отдает постоянно один и тот же контент тому кто ждет сообщение независимо от того появилось ли новое сообщение или нет? А если контент появился тогда он добавляет его к предыдущему своему ответу и таким образом формируется реал-тайм общение? так что ли?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Отсутствие потерь времени на установку соединения и потерь трафика на куки и прочие заголовки.
     
  5. pircul

    pircul Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    100
    Симпатии:
    0
    igordata, понятно, спасибо, но как быть с организацией? Хочу написать хотя бы маленький сервер-клиент который продемонстрировал бы на реальном примере как все это работает... а то многие говорят "Вот сокеты, классная штука!" а нигде нормального объяснения и примеров нет. Одни копии с мануала где толком ничего не понятно по этой теме.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Пхп просто не рождён для этого, хотя и можно.

    попробуйте node.js или Яву.
     
  7. pircul

    pircul Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    100
    Симпатии:
    0
    Я слышал про NodeJS, но меня интересует именно php и не потому что я фанат сокет серверов на php, а именно в первую очередь интересует эта возможность как возможность языка php. Вопрос из категории "Как это работает на php? Какие есть более эффективные способы для организации клиент-сервера с использованием сокетов на PHP?". Ну вот хоть убейте я не нашел нормального примера и объяснения этой темы в интернете. А очень хочется знать
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Пхп не любит долго работать
     
  10. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    сейчас глянул про NodeJS, а что это получается, на JavaScript можно писать сайты? т.е. использовать JavaScript как серверный язык (как php)?
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Именно
     
  12. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Зачем же я тогда учил PHP? И где автор этой темы был с этой темой раньше, когда я только выбирал что учить.
    Шутка конечно, но доля правды в ней есть, я бы изначально учил только JS + NodeJS, зачем знать 2 языка PHP и JS , если можно только один - JS .

    Или я чего то недопонимаю?
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    пхп продвинутей яваскрипта на голову. а что учить - лучше и то и другое.
     
  14. pircul

    pircul Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    100
    Симпатии:
    0
    Я был там уже, но этого мне не хватило для построения общей картины... но все же спасибо за ссылку :) Попробую перечитать, может "запахался" слишком, поэтому чуть подтармаживаю
    Думаю да. Я не очень хорошо знаком с nodeJS, но думаю это всего лишь технология заточенная под конкретные задачи и написать полноценный сайт любой сложности с использованием одного Nodejs не получится. Может сокет сервер будет более выгодным написать на nodejs в плане ресурсозатраты а не на php. Видел чуток кода на nodejs, единственное сходство с js которое я нашел это только синтаксис. Так что пхп учил ты не зря.
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    получится на nodejs написать всё что угодно. вопрос только в количестве времени. нода молода. через пяток лет на ней будет удобно делать что угодно. только вот язык javascript по сравнению с пхп это каменный век.
     
  16. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Как я понимаю под nodejs необходимы специальные хостинги (как например для ASP.NET), которые днем с огнем не найдешь, а бесплатные и подавно.
     
  17. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Да ладно дай время он себя еще покажет. Сейчас такая тенденция прослеживается...
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Я надеюсь, что он вырастет под текст, как пхп, что приведёт реально к тому, что надо будет учить только один язык и всё станет гораздо прозрачнее. Граница между сервером и клиентом изрядно пошкрябается. Плюс к этому я еще молюсь на наступление js на десктопы и мобильники.
     
  19. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    На мобилах полно JS сейчас.
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не, я про приложения. и про десктоп приложения и про мобильные приложения. не про браузеры.
     
  21. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    На мобилах UI сейчас на WP и MeeGo работает на JS. И в приложениях тоже, разумеется. Возможно, на андройде его поддержка есть. Про iOS не скажу.
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    да, пока это эксперименты на живых людях. я вижу в js язык будущего. Но я надеюсь он обретёт хотя бы конкатенатор. Хотя это убьёт совместимость, поэтому видимо этого не случится никогда. а жаль.
     
  23. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ды как эксперименты.. на JS там только UI. Логика на С++. Хотя в MeeGo есть QML-приложения вообще без плюсового кода. На чистом JS по сути.
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Поглядим лет через пять
     
  25. Типа Moderator

    Типа Moderator Новичок

    С нами с:
    12 янв 2016
    Сообщения:
    1
    Симпатии:
    0
    Прошло почти 6 лет, что вы можете сказать про эту свою фразу:
    "Пока это эксперименты на живых людях. я вижу в js язык будущего."