2016-06-07 28 views
1

我正在进行套接字编程,而我是socket新手。我被困。我能够轻松地在服务器上发送消息,但无法从服务器获取消息。这可能意味着我的socket.on()方法不起作用。 我的socket连接的代码是socket.on方法在从服务器获取消息期间不会调用

-(void)socketSession 
{ 
    NSString *strURl = [NSString stringWithFormat:URl]; 
    NSURL* url = [[NSURL alloc] initWithString:strURl]; 

     socket = [[SocketIOClient alloc] initWithSocketURL:url options:@{@"log": @YES, @"forcePolling": @YES}]; 
    [socket connect]; 
    [self recieveServerMessage]; 


    [socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) { 
     NSLog(@"socket connected"); 


     }]; 

} 

我的viewController类调用此方法对viewDidLoadrecieveServermessage方法是

-(void)recieveServerMessage{ 

    NSLog(@"receiving...message..."); 


    [socket on:@"chat" callback:^(NSArray* data, SocketAckEmitter* ack) { 
     NSLog(@"recieveMessage"); 

    }]; 

} 

我的控制时,通过服务器发送消息不来。 及以下格式由网络服务器客户端提供

socket.on(":chat", function(data) { 
// fired when any chat message is raised 
// data.to_id = my _id. Please verify this before processing the packet 
// data.sender_id = sender's _id. Map against counsellor list API or /api/getUserName?_id=(user's _id) 
// data.msg = text message sent by the sender 
}) 

现在请指导我。在过去的两天里,我一直在坚持。 谢谢

回答

0

套接字io JavaScript类的完整代码将有所帮助。

您需要编写emit函数将消息从服​​务器发送到客户端。像:

sockets.emit('chat', message); 

而且从客户端到服务器的

[socket emit:@"chat" withItems:@[@"message", @"other data"]]; 
+0

socket.emit用于发送消息到服务器,但这部分工作。我无法从服务器获取消息意味着来自服务器的socket.on方法不叫 –

+0

你打电话发送消息给客户端吗? –

+0

其实我有一个在线网站有聊天功能,在后台使用套接字,但相同的功能在android.Android开发人员使用socket.on方法从服务器获取消息。 –

0

我发现我的solution.Main问题在插座握手。现在我正在使用

NSURL* url = [[NSURL alloc] initWithString:@"https://unbottle.me"]; 

socket = [[SocketIOClient alloc] initWithSocketURL:url 
              options:@{@"connectParams" : @{@"_id": userID,@"isCounsellor": @NO,@"counsellor_id": counsellorID}}]; 

此前我没有在字典中使用@“connectParams”键值,所以我正面临着这个问题。 谢谢

相关问题