测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | Apache 2 |
发布上次发布 | 2018年6月 |
SPM支持 SPM | ✗ |
由GagandeepArora,Asim Mehta,Vishal Jhanjhri,Jungleworks维护。
为 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 网站,
- (void)setExtension:(NSDictionary *)extension forChannel:(NSString *)channel;
- (void)removeExtensionForChannel:(NSString *)channel;
许多委托方法可以用块代替,但仍存在,供那些喜欢这种方式的人使用。
注意:在 -connect:failure:
中,successHandler
和 failureHandlers
只会在连接成功或失败第一次时调用。由于自动重连逻辑,这些事件可能会多次发生。如果您需要每次都处理连接成功或失败,请使用委托方法(或同时使用)。
@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 服务器以测试客户端,所有所需信息都在这里: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"}'
由 Square 维护的符合 WebSocket (RFC 6455) 的客户端库,
https://github.com/square/SocketRocket
Objective-C Base64 扩展,用于 NSData 和 NSString
https://github.com/ekscrypto/Base64
MZFayeClient 需要iOS 6.x 及以上。
MZFayeClient 使用 ARC。