这属于swift 和 Object-C 的混编,如果直接下载了gitHub 上的 demo,拖入 source 文件,需要建立桥接文件,在这里我总是遇到 No such module 'Starscream' 的报错,可能拖入 Starscream 文件能行,但是我没有接着这条路走。我要说的是 cocopod 的方法导入到工程,这样系统自动配好了环境,也不用建立桥接文件了。
1.cocopod 导入,cd 到工程文件夹,vim Podfile 建立 Podfile 文件,在 Podfile 文件输入以下内容

这里 source 好像不用写,platform 未知,use_frameworks! 必须写,这个是有 swift 必须的,其他的和 OC 导入其他第三方库都一样。
然后去控制台,pod install ,等待一两分钟,重新打开工程文件夹,打开 .xcworkspace 文件。
2.导入 Socket.IO 库, 参照官方,如下:
ViewController.h 中

为啥用 @import ,自己可以研究研究。
3.开始使用,ViewController.m 中
1.设置 url,这个 url 为服务器地址域名,不能多写 ,域名后面的 /xxx 都设置在 namespace 里面。
2.设置配置参数字典,在这个字典里面一般有 log、forePolling 等参数,我们地址中 ? 后面的也是设置在这里,key 值为 connectParams,value 是个字典,其他的 extraHeaders 要和后台沟通是否需要。
3.初始化 SocketManager 对象;
4.初始化 SocketIOClient 对象,在这里可以设置 Namespace ,即请求url / 后面 ?前面的,这个也可以在配置参数字典中,设置为 nsp 的值。
5.添加 connect 监听,在这个方法里我们可以监听到是否长链接成功,一般也是在这里 向服务器 发送 join 请求,这个 join 只是一个字符串,需要询问后台你们的是什么。
6.添加你需要的监听,我这里添加的是 message 的,监听服务器发送给我们的信息,做处理。
7.链接, connect。
代码如下:

当然也可以监听其他 key,看自己的需求而定。

到此就可以收到服务器的消息了,向服务器发消息使用 emit:with:方法。
Socket.IO git 地址 : https://github.com/socketio/socket.io-client-swift.git
网友评论