SwiftNIO-IRC 是一个基于 SwiftNIO 的 Internet Relay Chat 协议实现。
本模块仅包含协议实现。我们还提供了:
要开始使用它,请拉取 swift-nio-irc-server - 一个统治一切并将它们绑定在黑暗中的模块。
NIOIRC 是 SwiftNIO 对 2016 年的 Noze.io miniirc 示例的移植。
一个导入必要模块的 Package.swift
示例
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "IRCTests",
dependencies: [
.package(url: "https://github.com/SwiftNIOExtras/swift-nio-irc.git",
from: "0.6.0")
],
targets: [
.target(name: "MyProtocolTool",
dependencies: [ "NIOIRC" ])
]
)
IRC 协议实现为常规的 ChannelHandler
,类似于 NIOHTTP1
。它接收传入的 ByteBuffer
数据,解析它,并发出 IRCMessage
项目。反之亦然,用户写入 IRCReply
对象,处理程序将其渲染为 ByteBuffer
。
将 IRC 处理程序添加到 NIO Channel 管道
import NIOIRC
bootstrap.channelInitializer { channel in
channel.pipeline
.add(handler: IRCChannelHandler())
.then { ... }
}