Merhaba
Bonjour networking for discovery and connection between iOS, macOS and tvOS devices.
Features
- Creating Service
- Start & Stop Service
- Stop Browsing
- Create Connection with Another Service
- Send Data
- Send file from given file path
- Send given text
- Strong Events
Requirements
iOS 9.0+ / macOS 10.9+ / tvOS 9.0+
Installation
CocoaPods
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
To integrate Merhaba into your Xcode project using CocoaPods, specify it in your Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
target '<Your Target Name>' do
pod 'Merhaba', '~> 1.2.1'
end
Then, run the following command:
$ pod install
Carthage
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
brew update
brew install carthage
To integrate Merhaba into your Xcode project using Carthage, specify it in your Cartfile:
github "abdullahselek/Merhaba" ~> 1.2.1
Run carthage update to build the framework and drag the built Merhaba.framework into your Xcode project.
Example Usage
Implement your class with MRBServerDelegate to handle Bonjour events
@interface ViewController : UIViewController<MRBServerDelegate>
Initiation of MRBServer
NSString *type = @"TestingProtocol";
self.server = [[MRBServer alloc] initWithProtocol:type];
self.server.delegate = self;
NSError *error = nil;
BOOL isStarted = [self.server start:&error];
NSLog(@"Check server started : %@", (isStarted) ? @"YES" : @"NO");
// Can handle error if not nil
Connect to selected service
[self.server connectToRemoteService:selectedService];
Sending data to selected service
NSData *data = [textToSend dataUsingEncoding:NSUTF8StringEncoding];
MRBServerErrorCode errorCode = [self.server sendData:data];
NSLog(@"Data sent with code : %ld", errorCode);
Handling incoming data with didAcceptData function
NSString *message = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Incoming message : %@", message);
Sending file at given path
MRBServerErrorCode code = [self.server sendFileAtPath:YOUR_FILE_PATH];
Send text
MRBServerErrorCode code = [self.mrbServer sendText:@"text"];
Stopping server
[self.server stop];
Stopping browsing for bonjour services
[self.server stopBrowser];
License
Merhaba is released under the MIT license. See LICENSE for details.