图片偷拍亚洲综合另类-在线观看免费不卡网站-午夜久久人妻一级内射a-日韩a级大片在线免费观看-日韩av一区二区三区在线看-2021AV天堂在线-午夜剧场在线观看高清-国产av不卡一二区-五月草白白色视频在线观看

品牌加盟網(wǎng)
品牌加盟網(wǎng)
品牌加盟網(wǎng) > 加盟資訊 > 蘋果開源Swift底層非阻塞I/O框架SwiftNIO

蘋果開源Swift底層非阻塞I/O框架SwiftNIO

I 

看新聞很累?看技術(shù)新聞更累?試試下載InfoQ手機客戶端,每天上下班路上聽新聞,有趣還有料!

在近日舉行的try! Swift東京大會上,蘋果宣布了SwiftNIO項目,這是一個用Swift編寫的、類似Netty的非阻塞、跨平臺I/O框架。

SwiftNIO是一個為開發(fā)高性能服務(wù)器和客戶端而設(shè)計的事件驅(qū)動的異步網(wǎng)絡(luò)框架。目前,該框架在macOS (10.12+)和Linux(Ubuntu 14.04)上進行開發(fā)和測試。據(jù)蘋果介紹:

SwiftNIO是一個跨平臺的、事件驅(qū)動的異步網(wǎng)絡(luò)框架,用于開發(fā)可維護的高性能協(xié)議服務(wù)器&客戶端。

SwiftNIO旨在成為一個構(gòu)建網(wǎng)絡(luò)應(yīng)用程序和框架的底層工具,致力于提供低開銷的I/O原語和協(xié)議實現(xiàn)。因此,通常可以將SwiftNIO視為一個構(gòu)造塊,用于構(gòu)建供應(yīng)用程序使用的高層網(wǎng)絡(luò)通信框架,或者是供有苛刻要求的應(yīng)用程序直接使用的高性能框架。通過這種方法,針對大多數(shù)網(wǎng)絡(luò)協(xié)議的支持在源碼樹外被實現(xiàn)出來。按照蘋果SwiftNIO工程師Cory Benfield的說法,雖然HTTP/1.1協(xié)議的支持在源碼樹內(nèi),但TLS支持、Websocket和HTTP/2支持在源碼樹外。

EventLoop是SwiftNIO提供的一個基本抽象。該對象會等待事件,并在事件發(fā)生時觸發(fā)某個回調(diào)方法。在理想情況下,會有一個或者兩個核心事件循環(huán)。為了在事件循環(huán)之間分配負載,可以使用EventLoopGroup。在EventLoop之上是Channel和ChannelPipeline。它們提供了一種友好的方式,可以在與特定文件描述符關(guān)聯(lián)的事件到來時發(fā)送通知,并調(diào)度處理。ChannelHandler提供了管道順序執(zhí)行事件處理的步驟。所有的處理器都是在同一個線程中執(zhí)行,不需要同步,實現(xiàn)起來更簡單。這也意味著處理器不能阻塞。SwiftNIO提供的最高層抽象是Bootstrap,簡化特定場景的通道創(chuàng)建,如ServerBootstrap、ClientBootstrap、DatagramBootstrap。要了解所有細節(jié),請查閱官方文檔。

在Package.swift中添加以下依賴項可以把SwiftNIO包含到自己的項目中:

此外,SwiftNIO提供了兩個示例NIOChat和NIOEcho,說明該框架的使用方法。

相關(guān)內(nèi)容 相關(guān)廠商內(nèi)容 用Kafka Streams搭建實時的廣告消費系統(tǒng) OpenResty十年開源的歷程和思考 阿里巴巴Blink流計算平臺介紹與實踐 Apache Kafka的過去,現(xiàn)在,和未來 相關(guān)贊助商

您好,朋友! 您需要 注冊一個InfoQ賬號 或者 登錄 才能進行評論。在您完成注冊后還需要進行一些設(shè)置。 獲得來自InfoQ的更多體驗。 告訴我們您的想法 允許的HTML標簽: a,b,br,blockquote,i,li,pre,u,ul,p 當有人回復(fù)此評論時請E-mail通知我

關(guān)閉 by 發(fā)布于 查看 回復(fù) 回到頂部

  • 評論文章
  • 加盟咨詢
對此頁面內(nèi)容評分及收藏
評分:
微博:
相關(guān)資訊
最新資訊
圖文資訊