gpt4 book ai didi

ios - ubuntu 服务器上的 socketio 客户端未与 ios 的套接字 io 客户端连接

转载 作者:行者123 更新时间:2023-11-30 12:09:05 25 4
gpt4 key购买 nike

我有这个在 Windows 10 上本地运行的 api,在 Windows Station 上监听具有命名空间“vendores”的套接字,我可以通过 ios 应用程序进行连接

let appDelegate = UIApplication.shared.delegate as! AppDelegate
let myJSON = [
"lng":String(location.coordinate.longitude),
"lat":String(location.coordinate.latitude),
"idvendedor":appDelegate.idSeller
]
print("updating location")

let socket = SocketIOClient(socketURL: URL(string: self.constans.addres)!,config: [.connectParams(["accessToken" : appDelegate.token]),.forcePolling(true),.nsp("/vendedor"), .log(true)])
print("el url del token: \(self.constans.addres)/vendedor")

socket.on("connect") {data, ack in
print("socket connected")
socket.emit("setLocation",myJSON)
print("Mostrando el Json: \(myJSON)")
}
socket.on("locationChanged", callback: {_,_ in
print("disconnected")
socket.disconnect()
})
print("send to connect ")
socket.connect()

在 Node 上运行的服务器端有此代码

vendedorSocket.on('connection', function (socket) {
console.log('Un vendedor se ha conectado');
socket.on('setLocation', function(data){
try{
assert(data.lng, "No longitude provided.");
assert(data.lat, "No latitude provided");
assert(data.idvendedor, "No idvendedor provided");
console.log('Ha cambiado la ubicación de un vendedor');
app.models.mapa.find({where: {vendedorId: data.idvendedor, activa: true }}, function(err, ubicaciones_inst) {
if (err) throw(err);
if(ubicaciones_inst && ubicaciones_inst.length > 0){
ubicaciones_inst.forEach(function (ubicacion) {
ubicacion.activa = false;
ubicacion.save();
});
}
});
var geopoint = {lat: data.lat, lng: data.lng};
app.models.mapa.create({coordenadas: geopoint, activa: true, vendedorId: data.idvendedor, created: Date.now()}, function(err, ubicacion_inst){
if(err) throw(err);
else if(ubicacion_inst){
socket.emit('locationChanged', ubicacion_inst);
}
});
}
catch(ex){
throwSocketException(socket, ex.message);
}
});
});

连接到本地 api 后,我收到了来自已连接 api 套接字的响应,并且实际上在数据库中存在一些带有位置数据的数据发送到服务。但是当使用在云上运行的服务运行应用程序时,套接字永远不会连接到 xcode 中显示的日志

2017-09-18 12:07:03.802 vasoking[1036:26086] LOG SocketEnginePolling: Got poll message: 1:3 2017-09-18 12:07:03.808 vasoking[1036:26086] LOG SocketEngine: Got message: 3 2017-09-18 12:07:03.812 vasoking[1036:26086] LOG SocketEnginePolling: Doing polling GET http://192.241.223.xxx:8003/socket.io/?transport=polling&b64=1&accessToken=ISWp70VbUX7YfHLHzs3ayYySADhWeMnT1k94Vuwsn1g2zr069lvyBV7JTOVEyEYj&sid=rGP6Zohesfhk0yE9AAAT 2017-09-18 12:07:06.100 vasoking[1036:25994] LOG SocketEngine: Writing poll: has data: false 2017-09-18 12:07:06.100 vasoking[1036:25817] LOG SocketEngine: Writing poll: has data: false 2017-09-18 12:07:06.106 vasoking[1036:25994] LOG SocketEnginePolling: Sending poll: as type: 2 2017-09-18 12:07:06.107 vasoking[1036:25817] LOG SocketEnginePolling: Sending poll: as type: 2 2017-09-18 12:07:06.108 vasoking[1036:25994] LOG SocketEnginePolling: Created POST string: 1:2 2017-09-18 12:07:06.110 vasoking[1036:25817] LOG SocketEnginePolling: Created POST string: 1:2 2017-09-18 12:07:06.113 vasoking[1036:25994] LOG SocketEnginePolling: POSTing 2017-09-18 12:07:06.114 vasoking[1036:25817] LOG SocketEnginePolling: POSTing 2017-09-18 12:07:06.117 vasoking[1036:25994] LOG SocketEnginePolling: Doing polling POST http://192.241.223.xxx:8003/socket.io/?transport=polling&b64=1&accessToken=ISWp70VbUX7YfHLHzs3ayYySADhWeMnT1k94Vuwsn1g2zr069lvyBV7JTOVEyEYj&sid=eBFLEj9Lyq5gFsOTAAAX 2017-09-18 12:07:06.119 vasoking[1036:25817] LOG SocketEnginePolling: Doing polling POST http://192.241.223.xxx:8003/socket.io/?transport=polling&b64=1&accessToken=ISWp70VbUX7YfHLHzs3ayYySADhWeMnT1k94Vuwsn1g2zr069lvyBV7JTOVEyEYj&sid=tqm-6Kb6cYkK5XxlAAAY

因此没有传输数据,当然也没有来自服务器的答复,那么可能是什么问题

最佳答案

点击此链接https://github.com/socketio/socket.io-client-swift/issues/744在SocketIOClient.swift中,当我将这段代码放入

open func engineDidOpen(reason: String):
if reason == "Connect" {
joinNamespace(nsp)
}

瞧,这工作完美,我猜这是 Windows 和 Linux 服务器运行 Node 之间的问题,因为 Windows 上没有这个可以连接并且也可以使用它,但是没有这个的 Linux 服务器无法连接到 namespace

关于ios - ubuntu 服务器上的 socketio 客户端未与 ios 的套接字 io 客户端连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46284326/

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