2017-07-12 22 views
0

を使用してのiOSクライアントアプリケーションからのイベントを呼び出すために、私は私のFaceControllerファイルのテストアクションを持つイベントの楽しみを探してSailsJS:どのようにsocket.io-クライアント・迅速

test: function(req,socket){ 
    console.log("SERVER LOG: Entered Socket Test"); 
    socket.on('fun', function(data){ 
    console.log("FUN FUN FUN"); 
    socket.emit('world', {name:"Anuj",message:"U Got it!!!"}); 
}); 

これは私のroutes.js

のコードです
'get /faces/socket': 'FaceController.test', 

私はObj-cプロジェクトでSocket-io-client-swiftを使用しています。私はサーバーに接続できますが、イベントを発行することはできません。以下は私のイベントを発行するために使用しているコードです:

NSURL* url = [[NSURL alloc] initWithString:@"http://localhost:1337"]; 

self.socket = [[SocketIOClient alloc] initWithSocketURL:url config:@{@"log": @YES, @"forcePolling": @YES,@"connectParams":@{@"__sails_io_sdk_version": @"0.11.0"}}]; 

[self.socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) { 

    NSLog(@"socket connected"); 

    NSMutableDictionary *dict = [NSMutableDictionary dictionary]; 

    [dict setObject:@"/faces/socket" forKey:@"url"]; 

    NSDictionary *eventDict = @{@"fun": @""}; 

    [dict setObject:eventDict forKey:@"data"]; 

    [self.socket emit:@"get" with:@[dict]];  
}]; 

誰かが正しい方法でサーバーにイベントを送信できますか。ありがとう!!!

答えて

0

私は最近、仮想の投稿を送信して、私のSailsサーバーにリクエストを受け取るために同じ問題に直面しています。最後に私はhereから解決策を得ました。

ここは私の投稿の例です。クライアントのiOS Swiftから取得します。

接続サーバーへ

socket = SocketIOClient(socketURL: URL(string: "http://localhost:1337")!, config: [.log(false), .compress, .forceWebsockets(true), .connectParams(["__sails_io_sdk_version":"0.12.13"])]) 

ポスト要求の例:これがお手伝いします

socket.emitWithAck("get",["url": "/userchat"]).timingOut(after: 0) {data in 
    print("get with ack------------>", (socket.engine?.sid)!) 
} 

希望:

socket.emitWithAck("post",["data": ["userid":"1","name": "Hello World2"], "url": "/faces/socket"]).timingOut(after: 0) {data in 
    print("socket id with ack------------>", (socket.engine?.sid)!) 
} 

要求を取得します。

ありがとうございました

関連する問題