Befrest IOS SDK Documentation


افزودن کلاینت بفرست به پروژه

آخرین نسخه کلاینت بفرست را از اینجا دانلود کنید و آن را با drag and drop به پروژه خود اضافه کنید.

سپس کتابخانه های زیر را به پروژه خود اضافه کنید.

Libicucore.tdb
SystemConfiguration.framework
دسترسی به یک instance از بفرست

برای دسترسی به توابع بفرست می توانید با استفاده از متد زیر یک instance از بفرست ایجاد کنید.

BRBefrest * befrest = [BRBefrest sharedBefrest];
تنظیم اطلاعات اتصال

برای ست کردن سه پارامتر uid ،chid و auth از متد های زیر استفاده کنید.

-(void) setUId:(NSNumber *)uId;
-(void) setChId:(NSString *)chId;
-(void) setAuth:(NSString *)auth;

اگر میخواهید هر سه پارامتر را همزمان تنظیم کنید روش ساده‌تر استفاده از تابع زیر خواهد بود.

-(void) initWithUId:(long) uid andAuthToken: (NSString *) auth andChId: (NSString *) chId;
توابع کنترل روند اتصال به بفرست

تابع start باید حتما بعد از ست کردن اطلاعات اتصال صدا زده شود.
با صدا زدن تابع stop، تا زمانی که دوباره تابع start را صدا بزنید، پیام‌ها را دریافت نخواهید کرد. (با فعال کردن دوباره بفرست، همه پوش هایی که در مدت زمان توقف به کانال مورد نظر ارسال شده باشند را دریافت خواهید کرد.)

-(void) start;
-(void) stop;
لطفا نکات زیر را در نظر داشته باشید:
  • صدا زدن تابع start یکبار در هر مرتبه اجرای برنامه لازم و کافی است. بنابراین بهترین مکان برای صدا زدن این تابع، متود applicationDidLaunchWithOptions کلاس AppDelegate است. همچنین این تابع را بعد از تغییر دادن هر یک از پارامتر‌های اتصال فراخوانی کنید تا بفرست از پارامترهای جدید برای اتصال استفاده کند.
  • بفرست اطلاعات اتصال را ذخیره می کند. در نتیجه بعد از یک مرتبه ست کردن پارامترها تنها صدا زدن start برای شروع کار بفرست در دفعات بعد کافی خواهد بود.

شیوه‌ی معمول راه اندازی بفرست بصورت زیر است:

@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    BRBefrest * befrest = [BRBefrest sharedBefrest];
    [befrest initWithUId:UID andAuthToken:AUTH andChId:CHID];
    [befrest start];
    return YES;
}
دریافت پوش‌ها

پوش های بفرست از طریق کلاس NSNotificationCenter در تمام کلاسهای برنامه قابل دریافت می باشند. نوتیفیکیشن های بفرست با نام BefrestPushReceivedNotification ارسال می شوند. محتوای پوشها بصورت آرایه ای از BRBefrestMessageها با کلید BefrestMessages در دیکشنری userInfo قرار دارد.

مثال دریافت پوش ها در یک UIVeiwController بصورت زیر است:

@implementation ViewController
- (void)viewDidLoad {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(befrestNotifDidReceived:) name:BefrestPushReceivedNotification object:nil];
}
- (void) befrestNotifDidReceived: (NSNotification *) notif{
    NSArray * msgs = [[notif userInfo] objectForKey:BefrestMessages];
    //your logic goes here
}
Refresh کردن بفرست

جهت اطمینان از دریافت بدون تاخیر پیام‌ها می توانید در موقعیت‌های مناسب بفرست را refresh کنید. همچنین می‌توانید بر حسب نیاز، فراخوانی این تابع را به کاربر واگذار کنید (برای مثال با فشردن یک دکمه). رفرش کردن با فراخوانی تابع refresh انجام می‌شود. این تابع یک بولین بر‌می‌گرداند که در صورت true بودن، عملیات refresh انجام خواهد شد. یک نوتیفیکیشن با نام BefrestConnectionRefreshedNotification با هر بار اتمام موفق رفرش در Default Notification Center ارسال خواهد شد. در صورت نیاز می توانید با دریافت این نوتیفیکیشن عملیات مورد نظر خود (مثل به روز کردن UI ) را انجام دهید.

تاپیک‌ها

با استفاده ازمتود های زیر می توانید تاپیک هایی که تا کنون ثبت شده اند را بررسی کرده و تاپیک های مورد نظر را حذف و اضافه کنید.

-(NSArray*) currentTopics;
-(BRBefrest*) addTopic: (NSString*) topicName;
-(BRBefrest*) removeTopic: (NSString*) topicName;

تاپیک‌های مورد نظر را باید قبل از start کردن بفرست اضافه کنید. چنانچه می‌خواهید پس از start کردن بفرست، تاپیک‌ها را کم یا اضافه کنید تابع start را پس از تغییر در تاپیک‌ها دوباره فراخوانی کنید.

افزایش امنیت در بفرست

می‌توانید برای بالابردن امنیت اتصال به بفرست، api key را به صورت دوره‌ای از قسمت تنظیمات حساب کاربری خود در وب سایت بفرست تغییر داده و کلید جدید را در سرور خود نگهداری کنید. با هر بار تغییر api key، اطلاعاتی که پیش از این، اپلیکیشن شما از آن برای اتصال استفاده می‌کرده نامعتبر خواهد شد. با اشکال در اطلاعات اتصال، بفرست شما را با انتشار یک نوتیفیکیشن با نام BefrestAuthenticationFaildNotification در Default Notification Center مطلع خواهد کرد. می‌توانید با دریافت این نوتیفیکیشن در کلاس AppDelegate، متوجه نادرستی رشته auth شوید و از سرور اپلیکیشن خود رشته auth جدید و درست را دریافت کنید. پس از تصحیح رشته auth با استفاده از تابع setAuth، بفرست را دوباره start کنید.

نکته امنیتی مهم: لازم است به این نکته اشاره مستقیم داشته باشیم که نگه‌داری api key و تولید رشته auth در اپلیکیشن می‌تواند امنیت حساب کاربری شما را به مخاطره اندازد. برای جلوگیری از دسترسی دیگران به api key و در نتیجه آن، تولید رشته auth، جداً توصیه می‌شود api key در سمت سرور نگهداری شده و رشته auth نیز در سرور تولید و به اپلیکیشن تحویل داده شود.