/////// **** ***** 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];