SDKDemo1 1.64.17

SDKDemo1 1.64.17

测试已测试
语言语言 SwiftSwift
许可证 Apache 2
发布上次发布2018年6月
SPM支持 SPM

GagandeepAroraAsim MehtaVishal JhanjhriJungleworks维护。



SDKDemo1 1.64.17

  • Vishaljhanjhri

MZFayeClient

为 iOS 编写的 Faye 客户端。
该项目是 pcrawfor 在以下位置创建的库的重新编写版本:https://github.com/pcrawfor/FayeObjC
改进了捕获错误,增加了订阅块,可以设置频道的扩展。
添加了自动重连功能和许多其它功能...

使用示例

self.client = [[MZFayeClient alloc] initWithURL:[NSURL URLWithString:@"ws://:9292/faye"]];

[self.client subscribeToChannel:@"/server" success:^{
    NSLog(@"Subscribed successfully to 'server' channel!");
} failure:^(NSError *) {
    NSLog(@"Error subscribing to 'server' channel: %@", error.userInfo);
} receivedMessage:^(NSDictionary *message) {
    NSLog(@"Message on 'server' channel: %@", message);
}];

[self.client subscribeToChannel:@"/browser" success:nil failure:nil receivedMessage:^(NSDictionary *message) {
    NSLog(@"Message on 'browser' channel: %@", message);
}];

[self.client connect:^{
    [self.client sendMessage:@{@"text": @"hello!"} toChannel:@"/server" success:^{
        NSLog(@"Message sent successfully.");
    } failure:^(NSError *)error {
        NSLog(@"Error sending message: %@", error.userInfo);
    }];
} failure:^(NSError *) {
    NSLog(@"Error connecting: %@", error.userInfo);
}];

可用方法

初始化

- (instancetype)initWithURL:(NSURL *)url;
+ (instancetype)clientWithURL:(NSURL *)url;

发布

- (void)sendMessage:(NSDictionary *)message toChannel:(NSString *)channel success:(MZFayeClientSuccessHandler)successHandler failure:(MZFayeClientFailureHandler)failureHandler;
- (void)sendMessage:(NSDictionary *)message toChannel:(NSString *)channel usingExtension:(NSDictionary *)extension success:(MZFayeClientSuccessHandler)successHandler failure:(MZFayeClientFailureHandler)failureHandler;

订阅/取消订阅

- (void)subscribeToChannel:(NSString *)channel success:(MZFayeClientSuccessHandler)successHandler failure:(MZFayeClientFailureHandler)failureHandler receivedMessage:(MZFayeClientSubscriptionHandler)subscriptionHandler;
- (void)unsubscribeFromChannel:(NSString *)channel success:(MZFayeClientSuccessHandler)successHandler failure:(MZFayeClientFailureHandler)failureHandler;

连接/断开连接

- (void)connect:(MZFayeClientSuccessHandler)successHandler failure:(MZFayeClientFailureHandler)failureHandler;
- (void)disconnect:(MZFayeClientSuccessHandler)successHandler failure:(MZFayeClientFailureHandler)failureHandler;

使用 Faye 扩展

有关扩展的更多信息,请参见Faye 网站,

- (void)setExtension:(NSDictionary *)extension forChannel:(NSString *)channel;
- (void)removeExtensionForChannel:(NSString *)channel;

委托协议

许多委托方法可以用块代替,但仍存在,供那些喜欢这种方式的人使用。

注意:-connect:failure: 中,successHandlerfailureHandlers 只会在连接成功或失败第一次时调用。由于自动重连逻辑,这些事件可能会多次发生。如果您需要每次都处理连接成功或失败,请使用委托方法(或同时使用)。

@protocol MZFayeClientDelegate <NSObject>
@optional

- (void)fayeClient:(MZFayeClient *)client didConnectToURL:(NSURL *)url;
- (void)fayeClient:(MZFayeClient *)client didDisconnectWithError:(NSError *)error;
- (void)fayeClient:(MZFayeClient *)client didUnsubscribeFromChannel:(NSString *)channel;
- (void)fayeClient:(MZFayeClient *)client didSubscribeToChannel:(NSString *)channel;
- (void)fayeClient:(MZFayeClient *)client didFailWithError:(NSError *)error;
- (void)fayeClient:(MZFayeClient *)client didFailDeserializeMessage:(NSDictionary *)message
         withError:(NSError *)error;
- (void)fayeClient:(MZFayeClient *)client didReceiveMessage:(NSDictionary *)messageData fromChannel:(NSString *)channel;

@end

Faye 服务器

如果您想运行 Faye 服务器以测试客户端,所有所需信息都在这里:http://faye.jcoglan.com/
您还可以在 Server 文件夹下运行 faye.rb 文件

gem install faye thin eventmachine

rackup faye.ru -s thin -E production
curl https://:9292/faye -d 'message={"channel":"/server", "data":"hello"}'

依赖项

SocketRocket

由 Square 维护的符合 WebSocket (RFC 6455) 的客户端库,
https://github.com/square/SocketRocket

Base64

Objective-C Base64 扩展,用于 NSData 和 NSString
https://github.com/ekscrypto/Base64

要求

MZFayeClient 需要iOS 6.x 及以上。

ARC

MZFayeClient 使用 ARC。

联系方式

Michal Zaborowski

Twitter

Bitdeli Badge