LocalSocketProvider Class Reference
Inherits from | NSObject |
---|---|
Conforms to | GCDAsyncUdpSocketDelegate |
Declared in | LocalSocketProvider.h |
Overview
本地 UDP Socket 实例封装实用类。
本类提供存取本地UDP Socket通信对象引用的方便方法,封装了 Socket有效性判断以及异常处理等,以便确保调用者通过方法 {@link #getLocalSocket()} 拿到的Socket对象是健康有效的。
依据作者对MobileIMSDK API的设计理念,本类将以单例的形式提供给调用者使用。
@author Jack Jiang(http://www.52im.net/thread-2792-1-1.html)) @version 1.0
+ sharedInstance
获取本类的单例。使用单例访问本类的所有资源是唯一的合法途径。
+ (LocalSocketProvider *)sharedInstance
Discussion
获取本类的单例。使用单例访问本类的所有资源是唯一的合法途径。
Declared In
LocalSocketProvider.h
– resetLocalSocket
重置并新建一个全新的Socket对象。
- (MBGCDAsyncUdpSocket *)resetLocalSocket
Return Value
新建的全新Socket对象引用
Discussion
重置并新建一个全新的Socket对象。
Declared In
LocalSocketProvider.h
– getLocalSocket
获得本地UDPSocket的实例引用.
本方法内封装了Socket有效性判断以及异常处理等,以便确保调用者通过本方法 拿到的Socket对象是健康有效的。
- (MBGCDAsyncUdpSocket *)getLocalSocket
Return Value
如果该实例正常则返回它的引用,否则返回null
Discussion
获得本地UDPSocket的实例引用.
本方法内封装了Socket有效性判断以及异常处理等,以便确保调用者通过本方法 拿到的Socket对象是健康有效的。
Declared In
LocalSocketProvider.h
– setConnectionObserver:
设置UDP Socket连接结果事件观察者. 注意:此回调一旦设置后只会被调用一次,即无论是被"- (void)udpSocket:didConnectToAddress:“还是“- (void)udpSocket:didNotConnect:”调用,都将在调用完成后被置nil.
- (void)setConnectionObserver:(ConnectionCompletion)connObserver
Discussion
设置UDP Socket连接结果事件观察者. 注意:此回调一旦设置后只会被调用一次,即无论是被"- (void)udpSocket:didConnectToAddress:“还是“- (void)udpSocket:didNotConnect:”调用,都将在调用完成后被置nil.
@param networkConnectionLostObserver
Declared In
LocalSocketProvider.h
– tryConnectToHost:withSocket:completion:
尝试连接指定的socket.
UDP是无连接的,此处的连接何解?此处的连接仅是逻辑意义上的操作,实施方法实际动作是进行状态设置等 操作,而带来的方便是每次send数据时就无需再指明主机和端口了.
本框架中,在发送数据前,请首先确保isConnected == YES。
一个注意点是:此connect实际上是异步的,真正意义上能连接上目标主机需等到真正的IMAP包到来。但此机 无需等到异步返回,只需保证coonect从形式上成功即可,即使连接不上主机后绪的QoS保证等机制也会起到错 误告之等。
- (int)tryConnectToHost:(NSError **)errPtr withSocket:(MBGCDAsyncUdpSocket *)skt completion:(ConnectionCompletion)finish
Parameters
errPtr |
本参数为Error的地址,本方法执行返回时如有错误产生则不为空,否则为nil |
---|---|
finish |
连接结果回调 |
Return Value
0 表示connect的意图是否成功发出(实际上真正连接是通过异常的delegate方法回来的,不在此方法考虑之列),否则表示错误码
Discussion
尝试连接指定的socket.
UDP是无连接的,此处的连接何解?此处的连接仅是逻辑意义上的操作,实施方法实际动作是进行状态设置等 操作,而带来的方便是每次send数据时就无需再指明主机和端口了.
本框架中,在发送数据前,请首先确保isConnected == YES。
一个注意点是:此connect实际上是异步的,真正意义上能连接上目标主机需等到真正的IMAP包到来。但此机 无需等到异步返回,只需保证coonect从形式上成功即可,即使连接不上主机后绪的QoS保证等机制也会起到错 误告之等。
See Also
GCDAsyncUdpSocket, ConnectionCompletion
Declared In
LocalSocketProvider.h
– isLocalSocketReady
本类中的Socket对象是否是健康的。
- (BOOL)isLocalSocketReady
Return Value
true表示是健康的,否则不是
Discussion
本类中的Socket对象是否是健康的。
Declared In
LocalSocketProvider.h
– closeLocalSocket
强制关闭本地UDP Socket侦听。
一旦调用本方法后,再次调用[LocalSocketProvider getLocalUDPSocket]将会返回一个全新的Socket对象引用。
本方法通常在两个场景下被调用:
1) 真正需要关闭Socket时(如所在的APP通出时);
2) 当调用者检测到网络发生变动后希望重置以便获得健康的Socket引用对象时。
- (void)closeLocalSocket
Discussion
强制关闭本地UDP Socket侦听。
一旦调用本方法后,再次调用[LocalSocketProvider getLocalUDPSocket]将会返回一个全新的Socket对象引用。
本方法通常在两个场景下被调用:
1) 真正需要关闭Socket时(如所在的APP通出时);
2) 当调用者检测到网络发生变动后希望重置以便获得健康的Socket引用对象时。
Declared In
LocalSocketProvider.h