2016-05-23 1 views
0

私は客観的なクライアントでSocket IO swift clientを使用していますが、特定の部屋に参加することができません。部屋に通うために私は部屋に渡しますId:ソケットiOSスピーディーなクライアントの対話型プロジェクション:参加室

/** 
* join room 
* 
* @on -> 'join' 
* 
* @access -> user 
* 
* @param -> 
*   |room  {messagingId} 
* 
* @emit -> {status:, message} 
*/ 

すべて私が見つけたのは、次のとおりです。

[socket on:@"join" callback:^(NSArray* data, SocketAckEmitter* ack) { 
    NSLog(@"join=>%@", data); 
    }]; 

私の質問は、PARAMとしてmessaginIDを渡す方法ですか?

ありがとうございました。

答えて

1

まず、

/**

物事を明確にするために少し説明がイベントのリスナーを追加します。 戻り値:ハンドラの一意のID/** */

public func on(event: String, callback: NormalCallback) -> NSUUID 

は、サーバーへのあなたの質問

TO */

public func emit(event: String, _ items: AnyObject...) 

ANSWERをメッセージを送ります

on(イベント:String、コールバック:NormalCallback) - > NSUUIDが満たされましたあなただけがデータ

だからあなたが部屋に参加するために発する使用する必要があるコードの下に使用し送信するために、サーバからの応答を取得します使用しているHOD

[socket emit: @"join", messaginID]; 
1

/////// **** ***** SocketIO ******** ///////

NSString  *User  = FORMAT(@"user_%@",[USERDEFAULT objectForKey:useridkey]); 
NSDictionary *param  = @{@"id": User}; 

NSData *data = [NSJSONSerialization dataWithJSONObject:param options:NSJSONWritingPrettyPrinted error:nil]; 
NSString *jsonString = [[NSString alloc]initWithData: data 
              encoding: NSUTF8StringEncoding]; 

NSURL* url = [[NSURL alloc] initWithString:CHAT_URL]; 

socket = [[SocketIOClient alloc] initWithSocketURL:url config:@{@"log": @NO, @"reconnectAttempts" : @50, @"reconnects" : @YES, @"forcePolling": @YES}]; 

//******* connect socket *******//// 
[socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) { 
    NSLog(@"socket connected"); 
    [socket emit:@"join" with:@[jsonString]]; 
}]; 



////******* For receive events *******//// 
[socket on:@"message" callback:^(NSArray * _Nonnull arrayData, SocketAckEmitter * _Nonnull ack) { 
    NSLog(@"%@", [arrayData description]); 

    NSString *other_userid = FORMAT(@"%@",[[arrayData valueForKey:@"r_id"] objectAtIndex:0]); 
    NSString *senderid = FORMAT(@"%@",[[arrayData valueForKey:@"s_id"] objectAtIndex:0]); 
    NSString *classified_id = FORMAT(@"%@",[[arrayData valueForKey:@"classified_id"]objectAtIndex:0]); 
    NSString *time = FORMAT(@"%@",[[arrayData valueForKey:@"time"]objectAtIndex:0]); 
    NSDictionary *temp; 

    if([classified_id isEqualToString:_classifiedid] && [other_userid isEqualToString:FORMAT(@"user_%@",selfuser.idstring)]) { 

     NSString *message = FORMAT(@"%@",[[arrayData valueForKey:@"msg"]objectAtIndex:0]); 

     temp = @{ 
       @"msg":message, 
       @"time":time, 
       @"s_id":senderid, 
       @"r_id":other_userid 
       }; 

     [self addChatObjectToChatArray:temp]; 

    } 

}]; 


[socket on:@"error" callback:^(NSArray * _Nonnull arrayData, SocketAckEmitter * _Nonnull ack) { 
    NSLog(@"error with -- %@ && ACK -- %@", [arrayData description], [ack debugDescription]); 
}]; 


[socket setReconnects:YES]; 
[socket connect];