【发布时间】:2020-07-26 00:58:51
【问题描述】:
我正在尝试将 Socket 集成到我的应用程序中以进行实时聊天。后端是在 node.js 上完成的,前端是在 React 上开发的,两者都运行良好。
我在我的 Swift 项目中添加套接字时遇到问题。
在下面的aaHandlers() 函数中,我希望得到一个 JSON 响应,其中包含 4 个用户的详细信息。它在 Web 应用程序中运行良好,但在 Swift 中却不行。我做得对吗?
这里是代码
import Foundation
import SocketIO
let manager = SocketManager(socketURL: URL(string: "https://chatsapi.dummyUrl.io")!, config: [.log(true), .compress])
let socket = manager.defaultSocket
let socketConnectionStatus = socket.status
class SocketIOManager: NSObject {
static let sharedInstance = SocketIOManager()
override init() {
super.init()
}
func addHandlers() {
socket.on("get_all_user_list") { (data, ack) in
print("KK get_all_user_list", data,ack) // this line never gets called. I tried putting breakpoints.
}
}
func establishConnection() {
socket.connect()
}
func closeConnection() {
socket.disconnect()
}
}
P.S:套接字已连接。
这是我在控制台中得到的:
> 2020-04-13 18:14:05.790193+0530 SocketTry[41289:9400138] LOG
> SocketIOClient{/}: Adding handler for event: get_all_user_list
【问题讨论】:
-
您可以在您的机器上本地安装一个最小的节点程序并从那里测试它 (
npm install --save socket.io),例如打电话给socket.emit('get_all_user_list', '<some json>');。然后将 Swift 程序中的 URL 更改为http://localhost:3000。那它有用吗?
标签: ios swift xcode sockets socket.io