Tôi đang trong quá trình thử nghiệm một chút với các thư viện được xoắn cho máy chủ/máy khách IRC. Tôi đã tìm thấy một vài ví dụ tốt về cách thực hiện một ứng dụng khách IRC nhưng dường như tìm thấy bất cứ điều gì tốt về phía máy chủ của sự vật. Ai có thể cung cấp một số cái nhìn sâu sắc vào làm thế nào để tạo ra một máy chủ IRC cơ bản trong xoắn?Ví dụ tốt về máy chủ IRC xoắn?
Chỉnh sửa: Điều gì về việc tạo ra điều này? Tôi có đi đúng hướng không?
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()
Khi tôi cố gắng tham gia kênh, tôi không bao giờ có thể. Tôi đã nhận được một lỗi liên quan đến việc không có một handler cho một lệnh, vì vậy tôi đã viết lên các phương pháp irc_USER và irc_NICK nhưng chỉ đơn thuần là loại bỏ lỗi, nó không giải quyết được vấn đề không kết nối/không hoạt động.
Vì vậy, bạn đang nói rằng tôi đang đi đúng hướng, nhưng tôi sẽ cần phải tiếp tục thêm các tính năng/phương pháp để hỗ trợ giao thức đầy đủ? Hoặc nó sẽ là tốt hơn để bắt đầu từ đầu và không sử dụng words.protocols.irc.IRC và chỉ sử dụng words.Service? Tôi hơi bối rối là tại sao có twisted.service và sau đó twisted.irc sau đó? Cái nào phù hợp để làm việc? – themaestro
Mục đích của twisted.words.service là bạn có thể căn cứ một máy chủ IRC trên đó. Có thể có một khoảng cách giữa ý định và thực tế; đây là một phần của Twisted không được sử dụng rộng rãi. Điều đó không có nghĩa là twisted.words.service sẽ không hoạt động cho bạn, vì điều đó phụ thuộc vào chính xác mục tiêu của bạn là gì. Đối với lý do tại sao có cả hai twisted.words.protocols.irc.IRC và twisted.words.service, thật dễ dàng - trước đây được sử dụng làm cơ sở cho việc thực hiện sau này. –