gpt4 book ai didi

javascript - 通过 socket.io Swift 客户端在 iOS 中使用 Socket.io

转载 作者:行者123 更新时间:2023-11-28 13:12:47 29 4
gpt4 key购买 nike

我一直在尝试在应用程序和我的服务器之间进行基本通信,但无论我做什么,我似乎都无法让它工作。下面是我的js代码

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

io.on('connection', function(socket){
console.log('a user connected');
io.emit("hello");
socket.on('disconnect', function() {
console.log('a user disconnected');
});
socket.on('response', function(message){
console.log(message);
});
});


http.listen(3000, function(){
console.log('listening on *:3000');
});

理论上应该在用户连接时发出警报,输出一条消息说用户已连接,然后发出一个事件“hello”

在断开连接部分下方,我正在尝试从我的 iOS 应用程序与服务器通信。我发出一个名为“response”的事件,其中包含一个名为“I got your response”的字符串。

我在控制台中收到“已连接用户”消息,但我从 iOS 应用程序发送的消息从未在控制台中打印出来。

这是我应用中的代码。

   override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let socket = SocketIOClient(socketURL: "192.168.0.3:3000")
socket.on("hello") {data, ack in
socket.emit("response", "I got your response")
}
socket.connect()
}

如您所见,我的服务器端代码发出事件“hello”。这应该触发 socket.on("hello") 并使应用程序发出事件“response”,使服务器打印出随它发送的字符串。

除了用户连接时在控制台中打印的消息外,这一切都没有发生。

非常感谢您的帮助。

该框架的 Github 存储库如下 https://github.com/socketio/socket.io-client-swift

最佳答案

在类的顶部声明并启动您的套接字变量。正如之前的评论所说,我认为变量在范围内丢失了。

class HostSocketHandler {
let socket = SocketIOClient(socketURL: urlString)
init(){
socket.connect();
}
}

关于javascript - 通过 socket.io Swift 客户端在 iOS 中使用 Socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30687771/

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