Хороший пример скрученного сервера IRC?

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

Править: Что относительно того, чтобы создать прочь из этого? Я иду правильное направление сюда?

from twisted.internet.protocol import ServerFactory
from twisted.internet import reactor
from twisted.words.protocols.irc import IRC


class IRCServer(IRC):
    def connectionMade(self):
        print "client connected"

    def handleCommand(self, command, prefix, params):
        print "handle comm"
        IRC.handleCommand(self, command, prefix, params)

    def dataReceived(self, data):
        print "data: %s" % data
        IRC.dataReceived(self, data)

    def irc_unknown(self, prefix, command, params):
        print "%s, %s, %s, IRC UNKNOWN" % (prefix, command, params)

    def irc_USER(self, prefix, params):
        print "USER: %s, %s" % (prefix, params)

    def irc_NICK(self, prefix, params):
        print "NICK: %s, %s" % (prefix, params)



class IRCServerFactory(ServerFactory):
    protocol = IRCServer

factory = IRCServerFactory()
reactor.listenTCP(8002, factory)
reactor.run()

Когда я пытаюсь присоединиться к каналу, я так и не смог. Я получал ошибку, касающуюся не наличия обработчика для команды, таким образом, я описал irc_USER и irc_NICK методы, но это просто избавилось от ошибки, это не решило проблему не соединения/не работы.

5
задан themaestro 29 June 2010 в 17:24
поделиться

1 ответ

Возможно, что-то вроде этого?

exarkun@boson:/tmp/irc-server$ cat > passwd
alice:secret
bob:19820522
exarkun@boson:/tmp/irc-server$ twistd -n words --irc-port 6667 --auth file:passwd
2010-06-29 11:51:26-0400 [-] Log opened.
2010-06-29 11:51:26-0400 [-] twistd 10.0.0+r29436 (/usr/bin/python 2.6.4) starting up.
2010-06-29 11:51:26-0400 [-] reactor class: twisted.internet.selectreactor.SelectReactor.
2010-06-29 11:51:26-0400 [-] twisted.words.service.IRCFactory starting on 6667
2010-06-29 11:51:26-0400 [-] Starting factory <twisted.words.service.IRCFactory instance at 0x9ddbf8c>

Если вы хотите увидеть, как это реализовано, см. twisted / words /нажмите.py

twisted.words.protocols.irc.IRC - это очень простая реализация только частей синтаксического анализа IRC-сервера. Он не реализует фактическую логику сервера, такую ​​как каналы, режимы, сообщения и т. Д. Вы можете построить на нем сервер, но вы должны построить почти все это. Именно это и делает код, вызываемый twistd words . Вы можете обратиться к его реализации, чтобы увидеть успешный пример того, на что нацелен код в вашем вопросе.

8
ответ дан 14 December 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: