Tag: 服务器

服务器端Swift任重道远– Matt Massicotte –中

服务器端Swift任重道远 最近我很想起Swift。 大多数情况下,这是因为有关该语言的动态性的讨论。 但是,我已经写过有关此的内容。 昨天,我读了一篇非常有趣的文章,有关称为Vapor的Web框架。 看起来很酷。 我正在考虑踢轮胎。 但是,我也想行使作为互联网公民的权利,也可以提出申诉。 我认为采用Swift作为有用的服务器端工具非常冒险。 此外,如果不自己做大量工作,就不可能在许多任务上使用Swift。 宣布几个月后,Crashlytics将Swift引入我们的生产服务器端基础架构中,我们就一直在运行它,这可能会让您感到惊讶。 公平地说,这只是一小段代码。 我们使用它将残缺不清的Swift符号转换为更易理解的形式。 但是,我们必须将其包装在Objective-C中。 为什么? 因为我们必须将其托管在Go流程中。 为什么? 因为我们需要与称为NSQ(http://nsq.io)的队列服务器(我很喜欢并强烈建议)进行对话。 Swift没有NSQ客户端。 自己编写客户是可能的,但这将是一项艰巨的任务。 我们不久前就谈到了这一点,但最终决定,这笔投资太大,收益太少。 那是因为在NSQ客户端之上,我还不知道对statsd的支持。 我们将statsd用于通过石墨的服务器端监视。 没有监控,我们就无法在生产中运行事物。 Go也对此提供了大力支持。 我很高兴看到Swift获得对服务器端工作的支持。 我并不高兴将速度作为主要重点,但这是可以理解的。 (顺便说一句,我很想看看它与Go和DropWizard的比较。我们的Go端点具有不到毫秒的响应时间。)我认为Swift确实会为Go和Java带来真正的收益,长期的。 但是,Go如今拥有大量高质量的客户。 我四处闲逛,确实找到了一些Kafka和MySQL的Swift客户端。 这很有希望,但不足以构建您可以依赖的东西。 除非我们为队列服务器,数据库和其他服务器端基础结构提供一些经过考验的客户端,否则我认为服务器端Swift是一个入门者。 当然,我知道您必须从某个地方开始。 蒸气看起来是一个不错的开始。 谁知道,也许新苹果公司为他们正在运行的那个巨大集群提供了一个强大的工具,并且即将开放源代码的Swift Cassandra驱动程序🙂

服务器端Swift与Kitura和Bluemix –编码自我–中

服务器端Swift与Kitura和Bluemix IBM Bluemix是一个云平台即服务解决方案,它使您能够专注于编写应用程序,而Bluemix处理大多数DevOps-y东西,例如网络,服务器,存储和软件依赖项。 它支持多种编程语言,包括Swift。 它也易于使用-您只需管理Web浏览器即可管理服务。 您甚至可以在IBM Swift Sandbox的浏览器中编写Swift代码。 本教程将带您了解Kitura和Bluemix入门的基础知识。 首先,我们将设置Bluemix,以便在准备就绪时可以以最小的努力上载我们的应用程序并启动服务器。 然后,我们将逐步完成Swift Package Manager和Kitura。 一旦建立了一定的熟悉度,我们将构建一些有用的东西并将其上传到Bluemix。 我们将使用Swift Package Manager中的SwiftCron软件包构建一个小型服务,该服务采用cron表达式并返回该表达式的可读描述。 设置IBM Bluemix 首先,请前往IBM BlueMix并注册免费的30天试用版。 登录时,系统会要求您命名组织的名称,这实际上是可以添加其他人员到您的团队并选择其位置的团队。 只需选择最接近您的位置-这些选项就限于Bluemix当前已设置基础架构的位置。 然后,将要求您设置一个空间,这是Bluemix组织应用程序和服务的方式。 然后,您将导航到仪表盘,该仪表盘是空的。 单击创建应用程序,我们将使事情变得更加生动。 Bluemix是基于Cloud Foundry构建的,Cloud Foundry是一种开源平台即服务(PaaS)。 然后,Bluemix为一些流行的Web框架(例如Python的Flask框架)提供了样板,以帮助您立即开始。 不幸的是,Swift还没有样板产品,因此我们将向下滚动这些诱人的选项,移至Cloud Foundry Apps部分。 为Swift选择运行时 。 设置您的应用名称。 我选择了SwiftCronServer,并将主机名保留为相同的自动填充值。 只需几分钟,我们已经在启动服务器。 那不是那么容易吗? 返回仪表盘,您应该可以看到您的新应用。 点击它。 然后,向下滚动到“持续交付”部分,然后单击“启用”。 您可以使用命令行界面手动将代码部署到Bluemix,但是将其向上游推送到Github并自动构建它更容易,更可靠。 在“持续交付工具链”页面上,向下滚动到可配置的集成。 链接您的GitHub帐户,然后单击“创建”。 轻松享受SPM和Kitura 现在是时候在本地运行Kitura项目了。 为您的项目创建一个新文件夹。 mkdir SwiftCronServer cd SwiftCronServer 我们将要使用的Kitura和Cron库都可以通过Swift Package Manager作为软件包使用,因此,我们将使用带有swift […]

使用蒸气的基本Swift Server设置

自从苹果宣布并发布了Linux兼容的Swift源代码以来,服务器端Swift一直是最活跃的开发追求之一。 已经出现了许多框架,包括Perfect,Vapor和Kitura(由IBM提供)。 在此博客文章中,我们将讨论使用Vapor进行基本设置有多么容易。 Vapor是Qutheory的合作者为Swift开发的Web框架。 它以其简单性,类型安全性和速度而自豪。 该框架会经常更新以使用最新的Swift 3快照。 当前,正在OSX和Ubuntu(14.04和15.10)上进行开发测试。 我们将设置一个服务器,该服务器将在撰写本文时使用最新的Vapor版本在本地运行。 安装Swift 3 为了简化安装,我们将使用swiftenv,它是一个类似于pyenv和rbenv的Swift版本管理器。 访问他们的github页面以获取更多详细的安装和使用说明。 目前,我们正在终端中执行以下操作,以安装最新的Vapor快照支持。 swiftenv安装DEVELOPMENT-SNAPSHOT-2016-05-03-a 此命令下载并安装2016年5月3日的Swift 3快照。 安装Vapor CLI 在处理Vapor项目时,Vapor的命令行工具提供了很多便利。 wget cli.qutheory.io -O蒸气 chmod + x蒸气 须藤MV蒸气/ usr / local / bin 更新CLI的过程非常简单 蒸气自我更新 创建服务器 使用CLI,我们将能够使用简单的命令来创建基本服务器。 vapor new test-server //创建一个名为“ test-server”的项目 cd测试服务器 蒸气生成 蒸气运行 运行给定命令将设置并运行基本服务器模板。 如果您在浏览器上访问http:// localhost:8080,将会看到类似的内容。 这是一个简单的项目示例,您可以对其进行修改以适合您的服务器需求。 蒸气甚至通过单击登录页面上的链接来提供示例。 自定义路线 检查项目目录,我们可以看到创建了许多文件和子目录,包括VaporApp.xcodeproj 。 双击以Xcode打开它。 确保您使用的是正确的Xcode开发快照工具链。 该项目应具有以下文件结构。 […]

使用Vapor 3支持推送通知

TLDR; 在Swift中执行cURL命令 几周前,我决定学习Vapor 3框架。 我希望能够为将来的项目开发后端API,而不必依赖我的goto Parse Server。 这是一个快速的入门指南,向您展示它的可能! 所有代码都在底部链接的GitHub存储库中提供。 为了获得有关该框架的经验并查看一些用例,我从Ray Wenderlich的网站购买了“带有Vapor的Server Side Swift”电子书。 我通读了这本书,以学习基础知识。 下一步是开始尝试将以前使用Parse Server的功能移植到Vapor 3应用程序。 当实现推送通知时,我遇到了一个障碍。 Apple的APN要求使用HTTP / 2建立连接,但是SwiftNIO(Vapor 3的核心网络依存关系)尚不支持HTTP / 2协议。 我以为我可能必须使用某些第三方解决方案,但由于我不想要这种依赖关系。 我决定仔细阅读Apple的开发人员文档(APNs-Apple Developer),以了解使用cURL连接APN所需的条件。 首先,您需要一个付费的Apple Developer帐户和一个为其配置了推送通知的演示应用程序。 您将需要运行演示应用程序并获取设备令牌,该令牌将在以后发送以测试APN。 HTTP / 2 cURL请求将需要证书。 第一步是从Apple开发人员帐户生成所需的证书。 由于已经有数个教程,因此我将不介绍如何执行此操作。 .cer文件和.p12文件将需要合并。 为此,请遵循以下bash脚本: #!/ bin / bash #将.cer文件转换为.pem文件: openssl x509 -in aps_development.cer-通知der -out cert.pem #将私钥的.p12文件转换为.pem文件: openssl pkcs12 -nocerts -in aps_development.p12 […]

Swift的阴暗面-后端服务器

Partiamo dall’inizio… 2014年 Apple Presenta durante la conferenza mondiale degli sviluppatori wwdc2014un nuovo linguaggio di programmazione destinato(目标C)utilizzato fino a quel momento per lo svilups di programOS allOS,OS OS, )。 Il scelto per il nuovo linguaggioèSWIFT(dall’inglese“ rondine”,“ rapido”)。 快速达成共识, 迅速达成目标,在目标C的客观C行为中使用未成年人的犯罪行为。 可能因语言问题而无法使用Apple Consiglia的问题。 Swiftpuòben definirsi il risultato di una attenta selezione darwiniana (in cui l’uomo recita la […]

开始生产吧!

我们明天要生产! 等等什么 我们有准备好要连接的API链接吗? 哦,是的,这里是链接! 检查你的松弛。 突然之间,您将替换所有View控制器,数据源等中的链接! 但是等一下,我们不能以更好的方式做到这一点吗? 只需单击两次,这就是我的操作方式,也应该如此! 首先,请检查我以前的枚举中的链接,然后看看! 假设您正在使用Google搜索应用,并且正在使用即将到来的网址进行开发和生产api: dev.google.com/api/ //用于开发网址 google.com/api_mobile/ //用于生产 首先,我们需要将Xcode设置为在生产和开发配置中使用不同的方案,请检查此gif,非常容易遵循: 您复制发行版配置,然后为您的应用程序创建新方案,为清楚起见将其称为:YourAppNameDevelopment。 容易吧? 现在,让我们进行下一步,以检测代码中的此配置。 如何检测呢? 它将通过我们的info.plist文件,将向其添加一个新的变量,我们将其称为“ Config”,并为其赋予一个值:$(CONFIGURATION)。 现在我们可以从info.plist中读取当前构建正在使用的配置,现在让我们确保该构建也正在使用开发配置! 现在,Xcode已准备就绪,是时候让代码发挥作用了! // //将新的var添加到称为scheme的enum var scheme:String { 返回Bundle.main.object(forInfoDictionaryKey:“ Config”)为! 串 } //更新mainDomain网址以检查配置命名并相应地返回结果。var mainDomain:URL { 切换方案{ 案例“发展”: 返回网址(字符串:“ dev.google.com/api/”)! 默认: 返回网址(字符串:“ google.com/api_mobile/”)! } } 新变量将添加到我们的经典枚举中,并对主URL进行一些修改,现在我们完全不必担心进行生产或开发了,只需单击两下即可! 检查github上增强的URLsFactory枚举代码,并让我知道您是否有建议或是否有其他人可能对URL有兴趣的问题? 还是一般的iOS开发! 分享,评论和鼓掌总是受到欢迎和赞赏! 感谢您到目前为止的阅读,并祝您在Appstore上一切顺利!