swift 实现websocket与后台通信(swift 如何构建简单的json字符串)

swift 语言在国内流传度不是很广,初学者者想找相关资料很困难,想去国外找资料又被墙了,本人才疏学浅,记录下一些学习过程中的经验,希望看完对你也有所帮助!

一个应用不可避免要与服务器进行通信,主要有,http 与 socket。(相关概念请自行google)

http暂时不论,我们先看看socket下面衍生的websocket,今天我就把自己怎么利用websocket与服务器进行交互记录下来:

首先你需要集成websocket到自己的项目,如果不明白如何集成,请看上一篇swift集成websocket库

集成websocket 到自己项目后还需要添加SwiftyJSON到自己项目,具体步骤和集成websocket一样。

添加好类库后我们就可以开始写代码了!

首先打开你项目,记得通过cocoapods生成的.xcworkspace文件打开项目。你会看到图上所示的项目结构,在Pods里面有我们添加进来的2个库,如果没有请参考上一篇博客重新添加。(项目千万不要有中文,否则添加库后会有乱码)

上一步没有问题后,楼主考虑到保证websocket的唯一性,采用了单例的模式,申明我的websocket

import UIKit
import Starscream


class SingletonSocket {
    
    let socket:WebSocket = WebSocket(url: NSURL(string: "后台服务器的地址")!)
    
    class var sharedInstance : SingletonSocket{
        struct Static{
            static let instance:SingletonSocket = SingletonSocket()
        }
        if !Static.instance.socket.isConnected{
            Static.instance.socket.connect()
        }
        return Static.instance
    }
}

在你使用的类里面一般是viewcotroller里面,要记得先实现

WebSocketDelegate 这个接口

接口必须实现的函数,不实现会报错

在viewDidLoad里面设置websocket的回调为在这个类实现的delegate,这样就能接收到服务器给我们返回的数据



接下来构建我们的请求参数,构建好后再用socket对象的writeString()发送给服务器



然后我们在回调函数里面打印一下服务器返回的数据


当然实际开发中我们不会仅仅打印数据,你可以根据你的业务逻辑在这里添加你自己的处理


最终实现后println打印出来的数据


这样一个基本的使用websocket发送json数据给后台到接受返回的流程就OK了!


转载请保留出处:

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...