|
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
|
|
php и sockets16.11.2012, 13:50. Показов 770. Ответов 3
Метки нет (Все метки)
Всем привет! Разрабатываю чат для игры и потребовалась ваша помощь.
В игре около 10 000 различных локаций, при переходе в локацию у нее свой чат (что-то типо комнат в чате). Соединение происходит по sockets дабы не нагружать БД, скорости и уменьшения трафика для клиента. Не могу придумать схему на стороне сервера, чтобы он отдавал информацию только тем клиентам, которые находятся только в той локации в которой было послано сообщение... Положение клиента будет в БД и в сессии. Как хранить положение клиента в сессии и отдавать только ему?
0
|
|
| 16.11.2012, 13:50 | |
|
Ответы с готовыми решениями:
3
php sockets + flash PHP Sockets отсылка сообщений всем клиентам Sockets |
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|
| 17.11.2012, 01:20 | |
|
Ну так всё зависит от того как у вас что сделано
![]() Можно просто в цикле рассылки проверять локацию отправляемого сообщения и отправлять только тем кто в локации, это если у вас все клиенты хранятся в одном массиве. А можно хранить для каждой локации список клиентов в отдельном массиве, и при отравке пробегать по всему массиву и отправлять.
1
|
|
|
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
|
|
| 17.11.2012, 02:03 [ТС] | |
|
первоначально игра была написана на php + js + php. Сейчас решил переделать под flash. Скажи пожалуйста, какой из методов будет лучше и если можно - небольшой пример по этому методу для понимания.
Тут еще стоит вопрос про скорость. Мне кажется, если будет достаточное кол-во клиентов, то удобнее бы было хранить массив свой на каждую локацию, верно? в таком случае нужно при переходе из локации в локацию переносить клиентов из одного цикла в другой. Но тут встал вопрос: если в момент перехода клиенту отправляется приватное сообщение, которое видно в любой локации, то это сообщение может утеряться. Как в таком случае избежать потери сообщения? Я думаю можно к примеру при переходе в локацию подгружать из базы последние приватные сообщения к примеру за последние 5 минут, а ниже уже общий чат пойдет. Запись в БД все равно производится для логирования (хотя можно даже писать в файл, к примеру в xml и из него читать). Я даже не знаю как лучше вариантов много, а как оптимально сделать не могу решиться.
0
|
|
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
||||||||||||||||
| 17.11.2012, 04:46 | ||||||||||||||||
|
Ну я думаю не что не мешает хранить общий массив всех подключений, а так же хранить массив для каждой локации.
1
|
||||||||||||||||
| 17.11.2012, 04:46 | |
|
Помогаю со студенческими работами здесь
4
Простой сервер (sockets) PHP sockets Mask string php sockets Sockets Sockets Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|