Python Twisted несколько клиентов - PullRequest
3 голосов
/ 28 июля 2011

Я пытаюсь освоить новый проект, которым я хочу заняться в свободное время, и у меня возникают трудности с его освоением.

Я пока не делал с ним "реальной" работыЯ просто занят чтением документов и сайтов, которые нашел.

Итак, скажу, что я делал многопользовательскую игру с несколькими зонами (картами), вроде как и MMORPG.Из того, что я читал, кажется, что фабрики - это путь (одна фабрика на зону).

Итак, мой вопрос: как я могу переместить соединение с одной фабрики (зоны), чтобы обработать другую?

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

Спасибо за любые ответы!

/ TL

1 Ответ

0 голосов
/ 28 июля 2011

Фабрики - это способ связать определенный способ создания соединения с конкретным прослушивающим или соединительным сокетом.Они, как вы говорите, «этот порт говорит по протоколу X».

Как только обработчик соединения (экземпляр протокола) создан, он не ассоциируется с его фабрикой за пределами атрибута .factory.Вы можете просто изменить его атрибут .factory, чтобы он указывал на какой-либо другой объект.

Однако в MMORPG "Зоны", как правило, представляют собой структуры данных уровня приложения, которые относятся к коллекциям геометрии, проигрывателям и т. Д.абсолютно нет причин связывать одну зону на одну фабрику.Фактически, если вы хотите, чтобы игроки свободно перемещались между Зонами, это означает, что они будут продолжать использовать то же соединение во второй Зоне, что и в первой, что говорит о том, что Фабрика определенно является неправильной связывающей структурой данных Twisted, которую следует связывать.с ним.

Мне не понятно из вашего вопроса, почему вы думали, что эти объекты должны иметь прямое отношение, хотя.Если бы вы попытались создать пример программы, я ожидал бы, что вы быстро поймете, что она не будет работать.

...