Swift服务器

    以前虽然知道swift服务器,却没有研究过,最近没事在网上寻找别人的例子研究了一下,笔记以作备份
    根据大部分同学们的经验,我选择了Perfect框架。我们需要创建的是http服务,所以选择框架里的HTTPServer库.

  • 新建Server工程
  1. 创建工程文件夹
cd ./Desktop/workSpace

mkdir SwiftServer

cd SwiftServer
  1. 初始化工程,此时创建的是没有xcodeproj的工程 ,--type executable 表示创建可执行文件
swift package init --type executable 
  1. 创建Xcode工程编译文件,至此可以使用Xcode进行编译了
swift package generate-xcodeproj 
  1. 编译工程
siwft build
  • HTTPServer
  1. 获取HTTPServer
git clone https://github.com/PerfectlySoft/Perfect-HTTPServer.git  (path)
  1. HTTPServer使用的是包管理器,所以我们可以
cd path/Perfect-HTTPServer
  1. 然后build一下工程,就会自动下载依赖包
swift build
  1. 下载完成后我们运行一下看看有没有问题,有可能出现的错误包括OpenSSL、httpparser等错误,因此可以提前安装好相应的库
brew install http-parser
brew install openssl
  1. 实际操作中会有一些编译性问题,为了方便最好将依赖库单独下载,以同样的方式配置成xcode工程,依赖库的下载地址在终端都可以看到
    Swift服务器_第1张图片
    1.png

    也可以等到下载完成以后在.bulid中copy出来
    Swift服务器_第2张图片
    2.png

    看不到隐藏文件夹的
defaults write com.apple.Finder AppleShowAllFiles YES
KillAll Finder
  1. 将依赖工程以相同的步骤编译
swift build

完成后,在workSpace文件夹中生成Server.xcworkspace


Swift服务器_第3张图片
3.png

打开workspace,将工程添加到Server中,删除不需要的Scheme,package和description都不需要,把对应的target添加到scheme中


Swift服务器_第4张图片
4.jpg

将每个工程中的依赖target删除,重新添加需要的Framework

编译依赖库的时候几个C库需要注意一下,虽然能编译过去,但是缺少module,在工程中我们发现
Swift服务器_第5张图片
5.png

工程本身提供了module,但我们需要把里面的内容改一下,替换成:
framework module COpenSSL {
    umbrella header "COpenSSL.h"
    
    export *
    module * { export * }
}

同时修改buildsetting如图

Swift服务器_第6张图片
6.png
在include目录下新建一个 头文件 COpenSSL.h ,将include的下的.h文件全部拖入
Swift服务器_第7张图片
7.png

至此C库就可以正常加载了,其他几个C库同理

  • 编译swiftServer工程
    这里不再详述,可SwiftServer查看代码
    运行swiftServer就可以看到HTTPServer启动啦

在此以作备忘

你可能感兴趣的:(Swift服务器)