gpt4 book ai didi

ios - iOS 中的 Sailsjs 套接字

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:36 25 4
gpt4 key购买 nike

我很难全神贯注于我正在尝试做的基于套接字的聊天应用程序。我将 sailsjs 用于我的服务器端框架,并尝试使用 SocketIO-Obj 在 iOS 中创建基于聊天的应用程序!

我与 sailsjs 框架成功握手,sailsjs config/sockets.js 文件中的 onConnect 方法运行。但是在它打开之后我如何路由到我创建的 Controller 和操作并且仍然能够访问请求套接字并将它们订阅到我的模型

最佳答案

假设您使用最新版本的 sails(0.10.0 及更高版本),sails 在 socket.io 上使用的协议(protocol)不是公开的,但您可以在 the part how it's made 上阅读源代码, and how it is interpreted .

基本上它会发出一个事件,以 http 动词作为事件名称和一个对象方法、数据、URL 和 header 。在 Javascript 中是这样的:

var request = {
data: data,
url: url,
headers: headers
};
socket.emit(method, request, callback);
  • method 必须类似于 'head''get''post' 等。
  • data 应该是发送请求主体的对象。可选。
  • url 必须是没有尾部斜杠或空格的字符串,例如 '/buy-a-cat''/cat/1/pat'
  • headers 应该是一个对象, header 名称和值的映射。 header 名称是小写的。像 { accept: '*/*' }。可选。

我不太了解 Objective-C,也没有测试过这段代码,但我认为你可以这样做:

NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:@"/cats" forKey:@"url"];

SocketIOCallback cb = ^(id argsData) {
NSDictionary *response = argsData;
// do something with response
};

[socketIO sendEvent:@"get" withData:dict andAcknowledge:cb];

在 http 请求符号中它将等于:GET/cats

请注意,如果您使用的是 sails 0.9.x 或更低版本,协议(protocol)会略有不同。还要注意,由于风 sails 还不稳定(不是 1.x.x),这可能会再次改变,因为这在任何地方都没有记录。

我还找到了一个 project making sails http calls with SocketIO-Obj .它看起来使用的是 0.9.x 协议(protocol),但应该与 1.x.x 兼容。

看起来你可以在里面这样做:

#import "SocketIO+SailsIO.h"


_socket = [[SocketIO alloc] initWithDelegate:self];
[_socket connectToHost:@"localhost" onPort:1337];

[_socket get:@"/user" withData:nil callback:^(id response) {
NSLog(@"Records: %@", response);
}];

关于ios - iOS 中的 Sailsjs 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23901286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com