मैं आईआरसी सर्वर/ग्राहकों के लिए मुड़ पुस्तकालयों के साथ थोड़ा प्रयोग करने की प्रक्रिया में हूं। मुझे आईआरसी क्लाइंट को कार्यान्वित करने के कुछ अच्छे उदाहरण मिल गए हैं लेकिन चीजों के सर्वर पक्ष पर कुछ भी अच्छा लगता है। क्या कोई मोड़ में एक बुनियादी आईआरसी सर्वर बनाने के बारे में कुछ अंतर्दृष्टि प्रदान कर सकता है?ट्विस्ट आईआरसी सर्वर का अच्छा उदाहरण?
संपादित करें: इस से निर्माण के बारे में क्या? क्या मैं यहां सही दिशा में जा रहा हूं?
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 विधियों को लिखा लेकिन यह केवल त्रुटि से छुटकारा पा लिया, इसने कनेक्टिंग/काम नहीं करने की समस्या को हल नहीं किया।
तो क्या आप कह रहे हैं कि मैं सही दिशा में जा रहा हूं, लेकिन मुझे पूर्ण प्रोटोकॉल का समर्थन करने के लिए सुविधाओं/विधियों को जोड़ना जारी रखना होगा? या स्क्रैच से शुरू करना बेहतर होगा और word.protocols.irc.IRC का उपयोग न करें और केवल शब्दों का उपयोग करें। सेवा? मैं कुछ हद तक उलझन में हूं कि twisted.service क्यों है और फिर twisted.irc तो? काम करने के लिए कौन सा उचित है? – themaestro
twisted.words.service का इरादा यह है कि आप उस पर एक आईआरसी सर्वर का आधार बना सकते हैं। इरादे और वास्तविकता के बीच एक अंतर हो सकता है; यह ट्विस्ट का एक हिस्सा है जिसका व्यापक रूप से उपयोग नहीं किया जाता है। इसका मतलब यह नहीं है कि twisted.words.service आपके लिए काम नहीं करेगा हालांकि, यह आपके लक्ष्य के आधार पर निर्भर करता है। क्यों दोनों twisted.words.protocols.irc.IRC और twisted.words.service दोनों हैं, यह आसान है - पूर्व को बाद के कार्यान्वयन के आधार के रूप में उपयोग किया जाता है। –