Змінюй хід війни! Допомагай ЗСУ!

Посоветуйте способ идентификации

  • Автор теми Автор теми StyleT
  • Дата створення Дата створення
Статус: Офлайн
Реєстрація: 11.06.2009
Повідом.: 424
Посоветуйте способ идентификации

Нужно каждому соединению на IdTCPServer присваивать id полученный после логина, так как сервер игровой, то быстродействие критично, куда этот id засунуть что б с ним было легко работать так как он будет нужен почти во всех операциях;). А то думаю массив и постоянный поиск по массиву с парой тысяч значений это не красиво.....

Решил держать id в БД, думаю так будет лучше всего, была правда ещё одна крейзи мысль, делать динамические переменные с именем зависящим от ip и быстренько к ним обращаться))
 
Нужно каждому соединению на IdTCPServer присваивать id полученный после логина, так как сервер игровой, то быстродействие критично, куда этот id засунуть что б с ним было легко работать так как он будет нужен почти во всех операциях;). А то думаю массив и постоянный поиск по массиву с парой тысяч значений это не красиво.....

Хэш-таблица с ID сессии в качестве ключа.

Решил держать id в БД, думаю так будет лучше всего

Это имеет смысл только в том случае, если к id на стороне сервера привязаны еще какие-то данные сессии - раз, и два - вынос хранилища данных сессии в базу дает ощутимый выигрыш тогда, когда у тебя ферма серверов, тогда не нужно привязывать все запросы одной сессии к одному и тому же физическому серверу
 
Хэш-таблица с ID сессии в качестве ключа.

а поподробнее можно? мануальчик, риадми там.... как эту таблицу организовать?
ПыСы: поставил MySQL и на удивление легко связал с Билдером. Осталось разобраться в функциях доступа, чтения, записи)

понял что тако хеш-таблица, и как с ней работать, но это надо самому делать, или есть уже готовый компонент?
эмм, только дошло, в качестве ключа идет ip и длинна у них почти одинакова, какой тогда смысл? там ведь ускорение поиска идет в основном из за разницы в длинне...
 

эмм, а что неправильно? к ip сессии у меня всегда есть доступ, а вот к id полученному при логине нет, значит и искать нужно id через ip и порт
или вы хотите сказать что нужно искать по id сессии которая ему присваивается автоматом, вроде, дето в мануале видел....
 
Накуя хранить IP в виде строки?
 
хз, я ещё ничего не делал, я пока с MySQL разбираюсь, я так понял что искать таки надо по id сессии что выдается автоматом через хеш-таблицу...
 
Нужно каждому соединению на IdTCPServer присваивать id полученный после логина, так как сервер игровой, то быстродействие критично, куда этот id засунуть что б с ним было легко работать так как он будет нужен почти во всех операциях;). А то думаю массив и постоянный поиск по массиву с парой тысяч значений это не красиво.....

Решил держать id в БД, думаю так будет лучше всего, была правда ещё одна крейзи мысль, делать динамические переменные с именем зависящим от ip и быстренько к ним обращаться))

хз, я ещё ничего не делал, я пока с MySQL разбираюсь, я так понял что искать таки надо по id сессии что выдается автоматом через хеш-таблицу...

Ну уже бы сам определился, что будешь искать id или сессию по id. Хоть сам понимаешь, что тебе нужно?
 
тут 2 id, первый (id1) насколько я помню присваивается ей автоматом на сервере (хранится где то в AContext) и он с ней всю дорогу, 2й id (id2) даю сессии я, она его получает при прохождении логина на сервере, и этот id2 мне нужен постоянно, ведь по сути я работаю не с сессией а с клиентом и именно по id2 я узнаю с каким клентом имею дело. Отсюда вывод надо зная id1 находить id2.
ПыСы: что то я не нахожу тот id1, видать просто преобразую ip и порт в число, вот и получу id1
 
Назад
Зверху Знизу