Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Чат на основе Перл-Демона. Принципы.


Автор: godsgame 20.3.2006, 21:03
Хочу написать чат на основе Перл-Демона, но не понимаю принципа.
Я так понимаю на серваке запускается ОДИН демон на перле, и все идет через него, так? (если да, то каким образом это организуется)
Если так, то каким образом он выдает новые сообщения КАЖДОМУ подконеченному пользователю?
Я что-то видел, что там должны быть сокеты (порты).
Обьясните зачем они нужны, можно ли без них обойтись, что для этого нужно сделать?
Потом будут еще вопросы!
Добавлено @ 21:06
Как запустить перл-демона на сервере? позволяют ли это хостеры?

Автор: sharq 21.3.2006, 12:53
godsgame, http://webmonkey.wired.com/webmonkey/97/18/index2a.html?tw=programmingпочитай старая статейка на эту тему.
+ perldoc IO::Socket и Socket
+ неплохо было бы тебе познакомиться с сетевым программированием
+ книга Сетевое программирование на perl (Л. Штайн)

Должен быть клиент и сервер, сервер запускается и он постоянно прослушивает определенный порт.

Цитата(godsgame @ 20.3.2006, 22:03 Найти цитируемый пост)
Как запустить перл-демона на сервере? позволяют ли это хостеры?

Код

./your_script.pl & # можно и без &

или
Код

nohup ./your_script 2>&1 &


Последний вариант создает файлик nohup.log и введет лог, записывает туда и STDOUT и STDERR.

smile

Автор: godsgame 23.3.2006, 18:44
sharq,
1) Извини за не скромный вопрос, но: у меня виртуальный сервер Апач (с комплекта "Денвер")...
не подскажешь куда там надо ввести
Цитата

./your_script.pl & # можно и без &


???????
Или это надо в start->Run?

2) Я так понимаю система такая:
1) на сервере запущен демон перл_демон.пл
2) При входе в игру у каждого юзера запускается этот файл, т.е существует отдельный фрейм куда этот перл_демон.пл загружается.
3) Потом этот демон выталкивает юзеру сообщения в чат таким образом:
Код

print "<script>parent.mainframe.postMes(".$mes['user'].", ".$mer['mes'].");</script>".


сомнения на счет п.2. Обьясните если не так.

Автор: sharq 25.3.2006, 21:15
godsgame,
Цитата(godsgame @ 23.3.2006, 19:44 Найти цитируемый пост)
Или это надо в start->Run?

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

Цитата(godsgame @ 23.3.2006, 19:44 Найти цитируемый пост)
2) Я так понимаю система такая:
1) на сервере запущен демон перл_демон.пл
2) При входе в игру у каждого юзера запускается этот файл, т.е существует отдельный фрейм куда этот перл_демон.пл загружается.
3) Потом этот демон выталкивает юзеру сообщения в чат таким образом:

ты читал то что я тебе предложил? по ходу - нет. smile

еще раз
Цитата(sharq @ 21.3.2006, 13:53 Найти цитируемый пост)
godsgame, вот почитай старая статейка на эту тему.
+ perldoc IO::Socket и Socket
+ неплохо было бы тебе познакомиться с сетевым программированием
+ книга Сетевое программирование на perl (Л. Штайн)


smile

Автор: Leviafan 18.5.2006, 19:35
Что-то знающие люди тока стебаются, а реально помочь?

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

Автор: sharq 18.5.2006, 19:55
Leviafan, 
Цитата(Leviafan @  18.5.2006,  20:35 Найти цитируемый пост)
Что-то знающие люди тока стебаются, а реально помочь?

никто не стебется, просто за тебя никто писать не будет. 
Цель - это помочь, натолкнуть на решение, НО не написать скрипт за тебя!


Цитата(Leviafan @  18.5.2006,  20:35 Найти цитируемый пост)
Вот у меня вопрос, если требуется организовать децентрализованный мультикастинг чат, то как быть в этом случае?
Если не хотите приводить примеры, то напишите хотяб, какие модули и методы использовать??  

Могу посоветовать посмотреть в сторону POE, подобное можно реализовать. 
Вот смотри http://poe.perl.org.

Будут возникать проблемы пиши, поможем.

 smile  

Автор: eXeBiT 13.6.2007, 00:56
У меня похожая немного проблема... при зауске скрипта через ком. строку выдает вот это:

C:\Documents and Settings\Kuzya>C:\WebServers\home\localhost\cgi-bin\fcx.pl 
Content-type: text/html 

 ** FLASHCHAT6 SERVER ** 
 ** 0.30908203125 ** 

Use of uninitialized value in string eq at C:\WebServers\home\localhost\cgi-bin\ 
fcx.pl line 47. 
        (in cleanup) Can't call method "close" on an undefined value at D:/Perl/ 
site/lib/DBD/mysqlPP.pm line 314 during global destruction. 

Ни фига понять что это(( помогите разобраться кто знает что это) Пожалуйсто!
при чем на хостинге купленном все работает а вот на денвере не хочет(((

Добавлено через 14 минут и 23 секунды
я немного поковырял движок и стало как я понимаю на 1 ошибку меньше вот терь это выглядит так:

C:\Documents and Settings\Kuzya>C:\WebServers\home\localhost\cgi-bin\fcx.pl 
Content-type: text/html 

 ** FLASHCHAT6 SERVER ** 
 ** 0.30908203125 ** 

        (in cleanup) Can't call method "close" on an undefined value at D:/Perl/ 
site/lib/DBD/mysqlPP.pm line 314 during global destruction. 

Автор: eXeBiT 13.6.2007, 01:12
кстати вот чат стоит у нормальном хостинге http://fcmx.ru , а на денвере поставить не могу(((

Автор: nitr 13.6.2007, 02:37
eXeBiT, денвер тоже нормальный =) , попросите админом обновить перл+модули. Что плохого в денвер? smile и чем вы отличили от другого? Или у вас ВДС/дедик/свой_выд.сервер?

Эта ошибка скорее всего из-за версий... раз тот же самый скрипт работает на др. машине...

Добавлено через 2 минуты и 9 секунд
P.S.: кстати, эта тема не связана с вашей, это вам на будущее... (сейчас не пересоздавайте)

Автор: eXeBiT 13.6.2007, 03:17
Цитата(nitr @ 13.6.2007,  02:37)
eXeBiT, денвер тоже нормальный =) , попросите админом обновить перл+модули. Что плохого в денвер? smile и чем вы отличили от другого? Или у вас ВДС/дедик/свой_выд.сервер?

Эта ошибка скорее всего из-за версий... раз тот же самый скрипт работает на др. машине...

чат работает не намашинь а на хосте atlex.ru

Добавлено @ 02:39
P.S.: кстати, эта тема не связана с вашей, это вам на будущее... (сейчас не пересоздавайте)

Извиняюсь!!!
И все же судя по тому что выдает командная строка в чем может быть ошибка?

eXeBiT, денвер тоже нормальный =) , попросите админом обновить перл+модули. Что плохого в денвер? smile и чем вы отличили от другого? Или у вас ВДС/дедик/свой_выд.сервер?

Эта ошибка скорее всего из-за версий... раз тот же самый скрипт работает на др. машине...

чат работает не намашинь а на хосте atlex.ru

Добавлено @ 02:39
P.S.: кстати, эта тема не связана с вашей, это вам на будущее... (сейчас не пересоздавайте)

Извиняюсь!!!
И все же судя по тому что выдает командная строка в чем может быть ошибка?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)