Форум → Программирование → PHP для идиотов → Прослушка сокета
Прослушка сокета
Страницы: ← Следующая страница →
-
Добры день.
Долго бьюсь с одной проблемой. Пишу асинхронный чат с php на стороне сервера.
Сокеты tcp, nonblocket.
При подключении нового пользователя сокеты форкаю в отдельные процессы и провожу авторизацию.
Дальше нужна асинхронная прослушка сокета, т.е. когда он может не только получить данные, в случае их наличия, но отправить при надобности.
Я его (сокет) перевожу а неблокирующий режим и тут начинаются траблы…
читать из него получается с костылями, но вот писать нет, плюс проц начинает есть.
Работа с nonbloket сокетами во всех описаниях сводится к select, но у меня один сокет, и как её применить я не знаю.
Прошу, помогите организовать прослушку сокета! -
9 апреля 2012 г. 2:29, спустя 10 минут 44 секунды
function Wait () {
socket_set_nonblock($this->user_socket);
while (true){
$bufer = socket_read($this->user_socket, 1024, PHP_NORMAL_READ);
if(!empty($bufer)){
// есть что послать серверу - обработчку
// секция не работает как хочется
}
if(!empty($this->server_messages)){
// есть что послать юзеру
// эта секция понятна
}
usleep(100);
}
} -
9 апреля 2012 г. 2:51, спустя 22 минуты 27 секунд
хуйней занимаешься во первых. во вторых не тот язык выбрал для сокетов долгоживущихСапожник без сапог -
9 апреля 2012 г. 9:48, спустя 6 часов 56 минут 31 секунду
phpdude
Я и не строю планов по захвату галактики или написанию второго фейсбука. Пишу элементарную вещь - чат.хуйней занимаешься во первых
Может быть.не тот язык выбрал для сокетов долгоживущих
Ну да, сейчас пойду изучать питон или перл, зайду на профильный форум по этим языкам - отправят учить яву или эрланг. Пройденный этап…
Но только ради чата учить язык программирования, это еще большая хуйня, чем писать чат на пхп.
Причем стоит заметить, что в пхп есть все нужные инструменты для его реализации.
Но не одно блядское гуру php в рутене нихуя не знает как с этим работать, зато умные мысли вроде "хуйней занимаешься" или "иди учи другой язык" высерает регулярно… -
9 апреля 2012 г. 10:21, спустя 33 минуты 18 секунд
http://php.net/manual/en/book.libevent.php
google libevent, где-то видел тему, где его достаточно хорошо разжёвывали, даже на русскомWork, buy, consume, die -
-
-
9 апреля 2012 г. 11:57, спустя 22 минуты 19 секунд
Всё фигня, вот тема http://socket.io/
Также можете посмотреть мой пример кода на perl+EV, с сокетами https://github.com/studentIvan/RDMT/blob/master/Server/rdmt.pl -
9 апреля 2012 г. 11:58, спустя 41 секунду
Щас еще дам списокСпустя 15 сек.https://github.com/LearnBoost/socket.io (node.js)
https://github.com/yrashk/socket.io-erlang (erlang)
https://github.com/mochi/mochiweb (erlang)
https://github.com/ibdknox/socket.io-netty (java)
https://github.com/eclipse/jetty.project (java)
https://github.com/benkay/java-socket.io.client (java)
https://github.com/Ovea/Socket.IO-Java (java)
https://github.com/Gottox/socket.io-java-client (java)
https://github.com/cometd/cometd (java)
https://github.com/Atmosphere/atmosphere (java)
https://github.com/ignacio/LuaNode-Socket.IO (lua)
https://github.com/vti/pocketio (perl)
https://github.com/DmitryKoterov/dklab_realplexor (perl)
https://github.com/madari/go-socket.io (go)
https://github.com/MrJoes/tornadio2 (python)
https://github.com/MrJoes/tornadio (python)
https://github.com/knsd/gevent-socketio (python)
https://github.com/powdahound/twisted (python)
https://github.com/gameclosure/orbited2 (python)
https://github.com/facebook/tornado (python)
https://github.com/stephenmcd/django-socketio (python)
https://github.com/dkastner/Socket.io-ruby (ruby)
https://github.com/markjeee/Socket.IO-rack (ruby)
https://github.com/maccman/juggernaut (ruby)
https://github.com/simb/FlashSocket.IO (flash)
https://github.com/APE-Project/APE_Server © -
9 апреля 2012 г. 12:55, спустя 56 минут 49 секунд
https://github.com/APE-Project/APE_Server ©
Никата Грошин (когда-то работал в Геометрии) пишетна самом деле обезъяныч реально ацкая негибкая поделка
Лучше использовать node.js+socket.io
— из коробки все популярные транспорты — от вебсокетов до пулинга
— море готовых расширений для node — хоть монгоДб хоть редис(со встроенным pub/sub)
Обезъяныч же предлагает только Мускуль и только лонг пулингhttps://github.com/LearnBoost/socket.io (node.js)
в то же время Иван Шумков (до сих пор работает в Геометрии) пишетЫocket.io жуткая вещь. Авторы похоже больше пиаром чем разработкой занимаются. Мы отказались от него и реализовываем свои транспорты
Симптомы Socket.IO: отваливаются клиенты, баги в транспортах, утечки памяти, медленно обрабатывает данные, к нагрузкам не приучена.
мы в свою очередь используем как раз его разработку - Beseda. Пока на продакшене в тестовом режиме крутится, широкой публике не видна.Спустя 126 сек.http://2011.devconf.ru/offers/25 -
-
-
9 апреля 2012 г. 14:50, спустя 1 час 3 минуты 4 секунды
А вдруг он сказал это для того, чтобы пользовались его беседой а не сокет.ио? -
9 апреля 2012 г. 19:43, спустя 4 часа 53 минуты 30 секунд
Копнул в сторону node.js и переписал уже написанный на php код чата под него. Получилось примерно в 10 раз короче и читабельнее. Сдается что еще и быстрее.
Но это при условии что я знаком с яваскриптом…
Так что ветку можно закрывать, спасибо за ссылки, именно благодаря им я взглянул на nodejs. -
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!