美文网首页
Swift服务器

Swift服务器

作者: ___________枫林晚 | 来源:发表于2018-01-08 18:24 被阅读0次

        以前虽然知道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工程,依赖库的下载地址在终端都可以看到 1.png 也可以等到下载完成以后在.bulid中copy出来 2.png
      看不到隐藏文件夹的
    defaults write com.apple.Finder AppleShowAllFiles YES
    KillAll Finder
    
    1. 将依赖工程以相同的步骤编译
    swift build
    

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


    3.png

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


    4.jpg

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

    编译依赖库的时候几个C库需要注意一下,虽然能编译过去,但是缺少module,在工程中我们发现 5.png
    工程本身提供了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启动啦

    在此以作备忘

    相关文章

      网友评论

          本文标题:Swift服务器

          本文链接:https://www.haomeiwen.com/subject/rvovnxtx.html