我在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]];
}];
有人可以提供将事件发送到服务器的正确方法。感谢!!!
答案 0 :(得分:1)
我最近面临同样的问题,即向我的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)!)
}
希望这会对你有所帮助。
由于