我在FaceController文件中进行了测试操作,以寻找事件的乐趣

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]];
}];

有人可以提供正确的方法将事件发送到服务器。谢谢!!!

最佳答案

我最近在发送虚拟帖子并向我的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("post",["data": ["userid":"1","name": "Hello World2"], "url": "/faces/socket"]).timingOut(after: 0) {data in
    print("socket id with ack------------>", (socket.engine?.sid)!)
}
索取要求:
socket.emitWithAck("get",["url": "/userchat"]).timingOut(after: 0) {data in
    print("get with ack------------>", (socket.engine?.sid)!)
}
希望这会帮助你。
谢谢

关于ios - SailsJS:如何使用socket.io-client-swift从iOS客户端应用调用事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45056364/

10-12 07:22