SRWebSocket中的WSS证书验证

如题所述

第1个回答  2022-06-22
    SRWebSocket是FaceBook提供的,一个iOS端常用的websocket框架。这个框架的好处是,解决了一般的websocket框架中,粘包、断包的问题,这个问题完全不用开发人员关注,拿到的消息都是完整的。关于SRWebSocket的源码解析可以参考: https://www.jianshu.com/p/cdb7a886789a

    本篇主要介绍在SRWebSocket的实际应用中,应该如何使用框架来完成WSS的验证。

    可能有的同学不了解WSS和WS的区别,或者WSS和HTTPS的区别,请参考这里: https://blog.csdn.net/gmq_syy/article/details/80151129

    首先,需要后端提供支持WSS的端口,这样我们创建连接的时候,url类似这样:wss://{host}:{port}/path......。

    然后,创建一个NSMutableURLRequest,根据框架提供的类扩展NSMutableURLRequest (SRCertificateAdditions)方法,将证书文件数组设置进去  - (void)setSR_SSLPinnedCertificates:(NSArray *)SR_SSLPinnedCertificates; 

    最后,创建SRWebSocket实例:self.socket = [[SRWebSocket alloc]initWithURLRequest:request];

    这样,框架会自动使用证书来进行SSL验证。