以前虽然知道swift服务器,却没有研究过,最近没事在网上寻找别人的例子研究了一下,笔记以作备份
根据大部分同学们的经验,我选择了Perfect框架。我们需要创建的是http服务,所以选择框架里的HTTPServer库.
- 新建Server工程
- 创建工程文件夹
cd ./Desktop/workSpace
mkdir SwiftServer
cd SwiftServer
- 初始化工程,此时创建的是没有xcodeproj的工程 ,--type executable 表示创建可执行文件
swift package init --type executable
- 创建Xcode工程编译文件,至此可以使用Xcode进行编译了
swift package generate-xcodeproj
- 编译工程
siwft build
- HTTPServer
- 获取HTTPServer
git clone https://github.com/PerfectlySoft/Perfect-HTTPServer.git (path)
- HTTPServer使用的是包管理器,所以我们可以
cd path/Perfect-HTTPServer
- 然后build一下工程,就会自动下载依赖包
swift build
- 下载完成后我们运行一下看看有没有问题,有可能出现的错误包括OpenSSL、httpparser等错误,因此可以提前安装好相应的库
brew install http-parser
brew install openssl
-
实际操作中会有一些编译性问题,为了方便最好将依赖库单独下载,以同样的方式配置成xcode工程,依赖库的下载地址在终端都可以看到
1.png
也可以等到下载完成以后在.bulid中copy出来
2.png
看不到隐藏文件夹的
defaults write com.apple.Finder AppleShowAllFiles YES
KillAll Finder
- 将依赖工程以相同的步骤编译
swift build
完成后,在workSpace文件夹中生成Server.xcworkspace
3.png
打开workspace,将工程添加到Server中,删除不需要的Scheme,package和description都不需要,把对应的target添加到scheme中
4.jpg
将每个工程中的依赖target删除,重新添加需要的Framework
工程本身提供了module,但我们需要把里面的内容改一下,替换成:
framework module COpenSSL {
umbrella header "COpenSSL.h"
export *
module * { export * }
}
同时修改buildsetting如图
6.png 在include目录下新建一个 头文件 COpenSSL.h ,将include的下的.h文件全部拖入 7.png至此C库就可以正常加载了,其他几个C库同理
-
编译swiftServer工程
这里不再详述,可SwiftServer查看代码
运行swiftServer就可以看到HTTPServer启动啦
在此以作备忘
网友评论