42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
|
1 | |
Php сокеты25.02.2013, 20:09. Показов 4351. Ответов 26
Метки нет (Все метки)
Здравствуйте.
Столкнулся с таким вопросом, как php сокеты(php_sockets.dll). Думаю использовать эту финчу, для реализации обмена сообщениями, между пользователями. Вопрос. Можно ли подключить к "прослушивающему" серверу, сразу несколько клиентов так, чтобы не было между ними путаницы? То есть, например, к серверу подключено, скажем 10 человек, но чтобы Петя, получал сообщения только от своего друга Васи, а Вася от Пети. То есть, какая-то индентификаци, между пользователями. Похожая ситуация, есть в приватном чате. Когда два человека, ведут диалог, а отправляемые ими сообщения, всплывают в чате у обоих одновременно.
0
|
25.02.2013, 20:09 | |
Ответы с готовыми решениями:
26
Php сокеты и unix-сокеты PHP и сокеты Сокеты на php PHP, MySQL и сокеты |
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|
27.02.2013, 01:00 | 21 |
1
|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
|
27.02.2013, 01:48 [ТС] | 22 |
Окей. Ну, теперь можно думаю и вздохнуть с облегчением.:-)
Благодарю за неоценимую помощь.:-) Добавлено через 37 минут Вздыхать с облегчением рано. При использовании функции sleep(), у меня засыпает весь php. В итоге после этого, я даже не могу просто на главную страницу своего сайта зайти. Приходится перезагружать денвер.:-) Как это можно обойти? Добавлено через 7 минут Дело в том, что у меня к файлу, где производится этот цикл, заинклуден другой php файл, в котором подключаюсь к БД. В итоге они оба засыпают. И я больше не могу войти на сайт, так как второй php файл с подключением к БД, подключен к каждой странице сайта.
0
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|
27.02.2013, 02:03 | 23 |
Не должно быть так. Оба файла должны работать не зависимо, так как запуск происходит нового экземпляра.
1
|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
|
09.03.2013, 14:34 [ТС] | 24 |
Остался один вопрос насчет long poll. В обработчике работает цикл и при каждом проходе, проверяет наличие новых данных. В итоге, если появилось новое сообщение, он оправляет его пользователю. Но что если пользователь, ушел с этой страницы, а наш цикл ведь продолжает работу... Как нам завершить работу цикла, если пользователь покинул страницу?
0
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|
09.03.2013, 16:18 | 25 |
Это как так. Пользователь ушел - скрипт завершил работу.
Можно указать принудительно не завершать работу скрипта, но по дефолту он завершит.
1
|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
|
09.03.2013, 17:09 [ТС] | 26 |
У меня цикл, работает 30 секунд. В нем стоит дополнительная функция, которая автоматически помечает новые сообщения, как прочитанные(во время диалога с пользователем). И иногда бывает такое, что новые сообщения, которые пользователь мне отправил после того, как я перешел на другую страницу, своего же сайта, какое-то время, автоматически помечаются прочтенными. По идее страницу я покинул, но скрипт как будто некоторое время подолжал работать и отмечать новые сообщения, как прочтенные. Поэтому я пришел к этому выводу.. Такое происходит только тогда, когдя я нахожусь в пределах своего сайта. Но стоит мне мне, конечно же выйти полностью или вообще закрыть браузер, скрипт, конечно же завершит свою работу.:-)
0
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|
09.03.2013, 18:48 | 27 |
вы же запрос делаете ajax'ом. вот пока хоть одно окно открыто, брезер подключен и скрпит работает, как только вы открывает другую страницу, соединение разрывается и подключается новое.
если у вас открыто два окна, то будет два соединения висеть к серверу.
1
|
09.03.2013, 18:48 | |
09.03.2013, 18:48 | |
Помогаю со студенческими работами здесь
27
Сокеты Сокеты Сокеты Сокеты и сессии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |