Tag: netty

SwiftNIO入门

您可能在不久前听说过有关SwiftNIO的谣言(发音为Swift Neo,就像Matrix的家伙一样;-)。 当我第一次阅读它时,我感到非常兴奋,想查看一下它,看看它与Java中的Netty有何不同。 到目前为止,如果您熟悉Netty,则应该对SwiftNIO感到宾至如归。 如果不是,请继续阅读。 为什么选择服务器端Swift? 为什么不? 如果您已经是iOS开发人员并且喜欢编写Swift,为什么不尝试在Swift中构建后端? 与Java,C#,Ruby,Go和Node等其他语言相比,Swift几乎没有相同数量的软件包可供您在后端重用。 但是,所有这些社区都必须从某个地方开始。 如果您在后端查看诸如Go和Javascript之类的新语言,那么像您这样的人会对这种语言感兴趣并解决了有助于推动社区前进的问题。 为什么选择SwiftNIO? 已经有一些很棒的服务器端Swift框架,例如Vapor,Kitura和Perfect,您可以开始构建Web应用程序。 实际上,Vapor将SwiftNIO用于其网络层。 我想做的是向您介绍一些较低层次的基础知识,以更好地理解较高层次的抽象。 在本文中,我们将介绍SwiftNIO。 从他们的Github页面上获取: SwiftNIO是跨平台的异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 它就像Netty,但是为Swift编写的。 SwiftNIO架构 首先,让我们简要介绍一下SwiftNIO的组件。 Channel是负责处理入站和出站事件的构造。 它连接到基础网络套接字。 Channel具有ChannelPipeline ,它是ChannelHandler对象的双链接列表。 ChannelHandlers通常包含您的应用程序逻辑。 当发生网络事件并按顺序处理时,将触发ChannelHandler方法。 本质上, ChannelPipeline是数据处理事件的管道。 入门 本教程适用于Mac,但是适用于Linux的步骤应该非常相似。 由于我们在服务器上,因此我们将使用Swift Package Manager(SPM)。 有两个部分: 创建一个TCP客户端 创建一个TCP服务器 第1部分:创建客户端 我们将运行一些命令来创建我们的项目结构并生成我们的Xcode项目。 打开您的终端并运行以下命令: $ mkdir TCPClient $ cd TCPClient $ swift软件包init –type可执行文件 $ swift包generate-xcodeproj $打开TCPClient.xcodeproj / 这是什么: 为您的项目创建一个名为TCPClient的新目录 […]

Netty Channelclosures检测

我正在使用netty和ios构build一个服务器客户端应用程序,当用户在他/她的ios设备上closuresWiFi时,我面临一个问题,netty服务器不知道这个问题。 服务器需要知道要为该用户进行清理并将其设置为离线,但是现在当用户再次尝试连接时,服务器只是告诉他他/她已经在线了。