当前位置: 首页 > 知识库问答 >
问题:

Socket.io与Swift不是握手

江迪
2023-03-14

我正在尝试将iOS应用程序与Node.js WebSocket服务器集成。我在iOS上使用SwiftUI,在服务器和客户端上使用Socket.io。

但当我试图将iOS应用程序与服务器连接时,它似乎没有与服务器连接。

有人能帮帮我吗?

import SwiftUI
import SocketIO

final class Service: ObservableObject {
    private var manager = SocketManager(socketURL:URL(string: "http://localhost:5000")!, config: [.log(true), .compress])
    
    init() {
        let socket = manager.defaultSocket
        socket.on(clientEvent: .connect)  { (data,act) in
            print("Connected")
        }
        socket.connect()
    }
}

struct SocketIO: View {
    @ObservedObject var service = Service()
    var body: some View {
        Text("Hello, Web socket!")
    }
}

这是我从SocketIO-client-swift获得的日志

共有1个答案

袁赞
2023-03-14

可能和安全有关。通常,ios应用程序期望使用HTTPS进行连接。要允许http连接,请在info.plist中添加以下内容(临时安全修复程序):

<key>NSAppTransportSecurity</key>
<dict>

 <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>
 类似资料:
  • 问题内容: 我正在开发一个Web应用程序,我想知道哪种方法适合我的项目。 基本上,我想向用户显示的是一些从请求发送到其他服务器的通知。我的node.js应用程序获取所有信息,然后将其分发给用户,并将副本保存到我的MongoDB中。 这个想法很简单,但是通过阅读方法我发现了这两种技术: Ajax:客户端将一直检查服务器上是否有新内容。这可以通过使用jquery ajax到达我的服务器API来完成(每

  • 问题内容: 所以我有一个应用程序,它运行着以Socket.io作为后端的节点js,以普通javascript作为前端的应用程序。我的应用程序有一个登录系统,当前该系统只是让客户端在连接后立即发送其登录数据。 现在,我认为将登录数据与handhakeData一起发送会更好,因此我可以直接让用户在连接时登录(而不是在建立连接之后),或者在登录数据无效时分别拒绝授权。 我认为最好将其他数据放在hands

  • 问题内容: 我的聊天应用程序遇到问题,我需要能够向特定用户发送私人消息,我可以选择该特定用户,但由于某些原因无法弄清楚如何发送私人消息。 在下面,您将找到我服务器的代码,请提供帮助: 问题答案: 首先在聊天室中添加用户,以便在您的私人聊天室中轻松找到用户 您用于加入私人会议室的客户端代码 Join Room 您在客户端的JavaScript代码 } 您的服务器端代码以在您的房间中添加用户 });

  • NodeJS的socket.io似乎不能作为websocket服务器工作 谢谢你的帮助