簡體   English   中英

Socket.IO 使用 Node.js 和 Swift 服務器未檢測到連接? [即將頒獎]

[英]Socket.IO using Node.js and Swift server not detecting connection? [AWARDING SOON]

當我在按下按鈕時嘗試運行 SocketTutorialManager.init() 時,初始化程序中的不同函數應該運行,但它們沒有運行,而是將以下內容打印到 Xcode 控制台:

'sockettest[70290:1461156] [] nw_protocol_get_quic_image_block_invoke dlopen libquic failed'

我的桌面上有一個 app.js 文件,如下所示:

const express = require('express');
const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const port = process.env.PORT || 3000;

app.use(express.static(__dirname + '/public'));

function onConnection(socket){
  console.log('a user connected');
  socket.on('disconnect', onDisconnection);
}

function onDisconnection(socket){
  console.log('a user disconnected');
}

io.on('connection', onConnection);

http.listen(port, () => console.log('listening on port ' + port));

I also ran an npm init on the desktop with a bunch of default settings and then import node dependencies express * and socket.io * via my package.json file.

我的 Swift 看起來像:

import SwiftUI
import SocketIO

struct ContentView: View {
var body: some View {
    Button("Click Me") {
        PDSocketManager.shared.establishConnection()
    }
}
}

class PDSocketManager: NSObject {

class var shared: PDSocketManager {
struct Static{
    static let instance = PDSocketManager()
}
return Static.instance
}

var socket: SocketIOClient?
fileprivate var manager: SocketManager?

fileprivate override init(){}

func establishConnection(_ completion: (() -> Void)? = nil) {
let socketUrlString: String = "http://localhost:3001/socket.io"
self.manager = SocketManager(socketURL: URL(string: socketUrlString)!, config: [.log(true), .reconnects(true), .extraHeaders(["header": "customheader"])])
self.socket = manager?.defaultSocket
self.socket?.connect()

self.socket?.once(clientEvent: .connect, callback: { (data, emitter) in
    print("\n\n\n connection done!! \n\n\n")
    if completion != nil{
        completion!()
    }
})
}

func connect()  {
socket?.connect()
print("should've socket connected here")
}

func disconnect()  {
socket?.disconnect()
}

func checkSocktConnect() -> Bool {
if let myManager = self.manager{
    if myManager.status == SocketIOStatus.connected{
      return true
    } else {
        self.socket?.connect()
        return false
    }
} else{
    return false
}
} }

更新:

這是使用 Parth 的解決方案記錄套接字時的 Xcode output :

2021-03-02 08:47:41.669119-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: statusChange with data: [connecting, 2]
2021-03-02 08:47:41.669315-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Joining namespace /
2021-03-02 08:47:41.669392-0500 sockettest[992:1229560] LOG SocketManager: Tried connecting socket when engine isn't open. Connecting
2021-03-02 08:47:41.669435-0500 sockettest[992:1229560] LOG SocketManager: Adding engine
2021-03-02 08:47:41.672334-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Adding once handler for event: connect
2021-03-02 08:47:41.672357-0500 sockettest[992:1229845] LOG SocketEngine: Starting engine. Server: http://ip-address:3000/
2021-03-02 08:47:41.672444-0500 sockettest[992:1229845] LOG SocketEngine: Handshaking
2021-03-02 08:47:41.697783-0500 sockettest[992:1229845] LOG SocketEnginePolling: Doing polling GET http://ip-address:3000/socket.io/?transport=polling&b64=1
2021-03-02 08:47:41.877242-0500 sockettest[992:1229843] LOG SocketEnginePolling: Got polling response
2021-03-02 08:47:41.877321-0500 sockettest[992:1229843] LOG SocketEnginePolling: Got poll message: 0{"sid":"jNuRNaYlTU1zFzXAAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
2021-03-02 08:47:41.879715-0500 sockettest[992:1229843] LOG SocketEngine: Got message: 0{"sid":"jNuRNaYlTU1zFzXAAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
2021-03-02 08:47:41.886369-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: ping with data: []
2021-03-02 08:47:41.886399-0500 sockettest[992:1229843] LOG SocketEnginePolling: Doing polling GET http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=jNuRNaYlTU1zFzXAAAAA
2021-03-02 08:47:41.886459-0500 sockettest[992:1229560] LOG SocketManager: Engine opened Connect
2021-03-02 08:47:41.886712-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Socket connected
2021-03-02 08:47:41.886870-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: statusChange with data: [connected, 3]
2021-03-02 08:47:41.887384-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: connect with data: ["/"]
2021-03-02 08:47:41.888137-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Removing handler with id: 05D5AFD6-5108-4EBB-A774-FB350D145FDA
2021-03-02 08:47:41.888195-0500 sockettest[992:1229843] LOG SocketEngine: Writing poll:  has data: false



 connection done!! 



2021-03-02 08:47:41.888598-0500 sockettest[992:1229843] LOG SocketEnginePolling: Sending poll:  as type: 2
2021-03-02 08:47:41.888905-0500 sockettest[992:1229843] LOG SocketEnginePolling: Created POST string: 1:2
2021-03-02 08:47:41.889085-0500 sockettest[992:1229843] LOG SocketEnginePolling: POSTing
2021-03-02 08:47:41.889134-0500 sockettest[992:1229843] LOG SocketEnginePolling: Doing polling POST http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=jNuRNaYlTU1zFzXAAAAA
2021-03-02 08:47:41.900166-0500 sockettest[992:1229845] LOG SocketEngineWebSocket: Sending ws: probe as type: 2
2021-03-02 08:47:41.900316-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: websocketUpgrade with data: [["sec-websocket-accept": "3ydGn/18kSKfrJyp/ElciaZtQPI=", "upgrade": "websocket", "connection": "Upgrade"]]
2021-03-02 08:47:41.905261-0500 sockettest[992:1229840] LOG SocketEngine: Flushing probe wait
2021-03-02 08:47:41.906380-0500 sockettest[992:1229847] LOG SocketEnginePolling: Got polling response
2021-03-02 08:47:41.906615-0500 sockettest[992:1229847] LOG SocketEnginePolling: Doing polling GET http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=jNuRNaYlTU1zFzXAAAAA
2021-03-02 08:47:41.914247-0500 sockettest[992:1229845] ERROR SocketEnginePolling: Error during long poll request
2021-03-02 08:47:41.914306-0500 sockettest[992:1229845] ERROR SocketEngine: Error
2021-03-02 08:47:41.914378-0500 sockettest[992:1229560] ERROR SocketManager: Error
2021-03-02 08:47:41.914382-0500 sockettest[992:1229845] LOG SocketEngine: Engine is being closed.
2021-03-02 08:47:41.914430-0500 sockettest[992:1229845] LOG SocketEnginePolling: Created POST string: 1:1
2021-03-02 08:47:41.914436-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: error with data: ["Error"]
2021-03-02 08:47:41.914626-0500 sockettest[992:1229845] LOG SocketEnginePolling: Doing polling POST http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=jNuRNaYlTU1zFzXAAAAA
2021-03-02 08:47:41.915164-0500 sockettest[992:1229560] LOG SocketManager: Starting reconnect
2021-03-02 08:47:41.915268-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: statusChange with data: [connecting, 2]
2021-03-02 08:47:41.915373-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: reconnect with data: ["Error"]
2021-03-02 08:47:41.915468-0500 sockettest[992:1229560] LOG SocketManager: Trying to reconnect
2021-03-02 08:47:41.915559-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: reconnectAttempt with data: [-1]
2021-03-02 08:47:41.915747-0500 sockettest[992:1229844] LOG SocketEngine: Starting engine. Server: http://ip-address:3000/
2021-03-02 08:47:41.915920-0500 sockettest[992:1229844] LOG SocketEngine: Handshaking
2021-03-02 08:47:41.916043-0500 sockettest[992:1229844] LOG SocketEnginePolling: Doing polling GET http://ip-address:3000/socket.io/?transport=polling&b64=1
2021-03-02 08:47:41.916365-0500 sockettest[992:1229560] LOG SocketManager: Scheduling reconnect in 22.380244474166073s
2021-03-02 08:47:41.931050-0500 sockettest[992:1229845] LOG SocketEnginePolling: Got polling response
2021-03-02 08:47:41.931126-0500 sockettest[992:1229845] LOG SocketEnginePolling: Got poll message: 0{"sid":"GncBvYHRVuwBwT4qAAAB","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
2021-03-02 08:47:41.931198-0500 sockettest[992:1229845] LOG SocketEngine: Got message: 0{"sid":"GncBvYHRVuwBwT4qAAAB","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
2021-03-02 08:47:41.932181-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: ping with data: []
2021-03-02 08:47:41.932231-0500 sockettest[992:1229845] LOG SocketEnginePolling: Doing polling GET http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=GncBvYHRVuwBwT4qAAAB
2021-03-02 08:47:41.932235-0500 sockettest[992:1229560] LOG SocketManager: Engine opened Connect
2021-03-02 08:47:41.932271-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Socket connected
2021-03-02 08:47:41.932314-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: statusChange with data: [connected, 3]
2021-03-02 08:47:41.932393-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: connect with data: ["/"]
2021-03-02 08:47:41.932697-0500 sockettest[992:1229845] LOG SocketEngine: Writing poll:  has data: false
2021-03-02 08:47:41.932972-0500 sockettest[992:1229845] LOG SocketEnginePolling: Sending poll:  as type: 2
2021-03-02 08:47:41.933028-0500 sockettest[992:1229845] LOG SocketEnginePolling: Created POST string: 1:2
2021-03-02 08:47:41.933490-0500 sockettest[992:1229845] LOG SocketEnginePolling: POSTing
2021-03-02 08:47:41.933547-0500 sockettest[992:1229845] LOG SocketEnginePolling: Doing polling POST http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=GncBvYHRVuwBwT4qAAAB
2021-03-02 08:47:41.942594-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: websocketUpgrade with data: [["connection": "Upgrade", "upgrade": "websocket", "sec-websocket-accept": "pa1QhnQkCVWnN+kL1zMm+z0mEX4="]]
2021-03-02 08:47:41.942612-0500 sockettest[992:1229844] LOG SocketEngineWebSocket: Sending ws: probe as type: 2
2021-03-02 08:47:41.944832-0500 sockettest[992:1229840] LOG SocketEnginePolling: Got polling response
2021-03-02 08:47:41.945680-0500 sockettest[992:1229840] LOG SocketEnginePolling: Doing polling GET http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=GncBvYHRVuwBwT4qAAAB
2021-03-02 08:47:41.946001-0500 sockettest[992:1229840] LOG SocketEngine: Flushing probe wait
2021-03-02 08:47:41.951337-0500 sockettest[992:1229845] ERROR SocketEnginePolling: Error during long poll request
2021-03-02 08:47:41.951418-0500 sockettest[992:1229845] ERROR SocketEngine: Error
2021-03-02 08:47:41.951495-0500 sockettest[992:1229560] ERROR SocketManager: Error
2021-03-02 08:47:41.951551-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: error with data: ["Error"]
2021-03-02 08:47:41.951683-0500 sockettest[992:1229845] LOG SocketEngine: Engine is being closed.
2021-03-02 08:47:41.951744-0500 sockettest[992:1229845] LOG SocketEnginePolling: Created POST string: 1:1
2021-03-02 08:47:41.952027-0500 sockettest[992:1229845] LOG SocketEnginePolling: Doing polling POST http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=GncBvYHRVuwBwT4qAAAB
2021-03-02 08:47:41.952431-0500 sockettest[992:1229560] LOG SocketManager: Starting reconnect
2021-03-02 08:47:41.952545-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: statusChange with data: [connecting, 2]
2021-03-02 08:47:41.952657-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: reconnect with data: ["Error"]
2021-03-02 08:47:41.952759-0500 sockettest[992:1229560] LOG SocketManager: Trying to reconnect
2021-03-02 08:47:41.952856-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: reconnectAttempt with data: [-1]
2021-03-02 08:47:41.952988-0500 sockettest[992:1229560] LOG SocketManager: Scheduling reconnect in 17.378798001778488s
2021-03-02 08:47:41.953118-0500 sockettest[992:1229845] LOG SocketEngine: Starting engine. Server: http://ip-address:3000/
2021-03-02 08:47:41.953264-0500 sockettest[992:1229845] LOG SocketEngine: Handshaking
2021-03-02 08:47:41.953632-0500 sockettest[992:1229845] LOG SocketEnginePolling: Doing polling GET http://ip-address:3000/socket.io/?transport=polling&b64=1
2021-03-02 08:47:41.967543-0500 sockettest[992:1229843] LOG SocketEnginePolling: Got polling response
2021-03-02 08:47:41.967609-0500 sockettest[992:1229843] LOG SocketEnginePolling: Got poll message: 0{"sid":"dGUd1NjkROAspt3hAAAC","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
2021-03-02 08:47:41.967688-0500 sockettest[992:1229843] LOG SocketEngine: Got message: 0{"sid":"dGUd1NjkROAspt3hAAAC","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
2021-03-02 08:47:41.968632-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: ping with data: []
2021-03-02 08:47:41.968803-0500 sockettest[992:1229560] LOG SocketManager: Engine opened Connect
2021-03-02 08:47:41.968840-0500 sockettest[992:1229843] LOG SocketEnginePolling: Doing polling GET http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=dGUd1NjkROAspt3hAAAC
2021-03-02 08:47:41.968850-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Socket connected
2021-03-02 08:47:41.968952-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: statusChange with data: [connected, 3]
2021-03-02 08:47:41.969027-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: connect with data: ["/"]
2021-03-02 08:47:41.969291-0500 sockettest[992:1229843] LOG SocketEngine: Writing poll:  has data: false
2021-03-02 08:47:41.969328-0500 sockettest[992:1229843] LOG SocketEnginePolling: Sending poll:  as type: 2
2021-03-02 08:47:41.969369-0500 sockettest[992:1229843] LOG SocketEnginePolling: Created POST string: 1:2
2021-03-02 08:47:41.970487-0500 sockettest[992:1229843] LOG SocketEnginePolling: POSTing
2021-03-02 08:47:41.970545-0500 sockettest[992:1229843] LOG SocketEnginePolling: Doing polling POST http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=dGUd1NjkROAspt3hAAAC
2021-03-02 08:47:41.979132-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: websocketUpgrade with data: [["connection": "Upgrade", "upgrade": "websocket", "sec-websocket-accept": "qXRyRflDO2o0fPGslzplhreoK+8="]]
2021-03-02 08:47:41.979201-0500 sockettest[992:1229844] LOG SocketEngineWebSocket: Sending ws: probe as type: 2
2021-03-02 08:47:41.983692-0500 sockettest[992:1229845] LOG SocketEngine: Got message: 3probe
2021-03-02 08:47:41.983814-0500 sockettest[992:1229845] LOG SocketEngine: Received probe response, should upgrade to WebSockets
2021-03-02 08:47:41.983862-0500 sockettest[992:1229845] LOG SocketEngine: Upgrading transport to WebSockets
2021-03-02 08:47:41.983904-0500 sockettest[992:1229845] LOG SocketEnginePolling: Sending poll:  as type: 6
2021-03-02 08:47:41.984048-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: pong with data: []
2021-03-02 08:47:41.985388-0500 sockettest[992:1229840] LOG SocketEnginePolling: Got polling response
2021-03-02 08:47:41.985457-0500 sockettest[992:1229840] LOG SocketEngine: Switching to WebSockets
2021-03-02 08:47:41.985503-0500 sockettest[992:1229840] LOG SocketEngineWebSocket: Sending ws:  as type: 5
2021-03-02 08:47:41.985545-0500 sockettest[992:1229840] LOG SocketEngine: Flushing probe wait
2021-03-02 08:47:41.986551-0500 sockettest[992:1229840] ERROR SocketEngine: connection closed by server. code=1000, type=protocolError
2021-03-02 08:47:41.986866-0500 sockettest[992:1229560] ERROR SocketManager: connection closed by server. code=1000, type=protocolError
2021-03-02 08:47:41.987293-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: error with data: ["connection closed by server. code=1000, type=protocolError"]
2021-03-02 08:47:41.987443-0500 sockettest[992:1229560] LOG SocketManager: Starting reconnect
2021-03-02 08:47:41.987494-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: statusChange with data: [connecting, 2]
2021-03-02 08:47:41.987556-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: reconnect with data: ["connection closed by server. code=1000, type=protocolError"]
2021-03-02 08:47:41.987605-0500 sockettest[992:1229560] LOG SocketManager: Trying to reconnect
2021-03-02 08:47:41.987676-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: reconnectAttempt with data: [-1]
2021-03-02 08:47:41.987783-0500 sockettest[992:1229560] LOG SocketManager: Scheduling reconnect in 21.743261523169984s
2021-03-02 08:47:41.987783-0500 sockettest[992:1229850] LOG SocketEngine: Starting engine. Server: http://ip-address:3000/
2021-03-02 08:47:41.988147-0500 sockettest[992:1229850] LOG SocketEngine: Handshaking
2021-03-02 08:47:41.988303-0500 sockettest[992:1229850] LOG SocketEnginePolling: Doing polling GET http://ip-address:3000/socket.io/?transport=polling&b64=1
2021-03-02 08:47:42.005212-0500 sockettest[992:1229843] LOG SocketEnginePolling: Got polling response
2021-03-02 08:47:42.005291-0500 sockettest[992:1229843] LOG SocketEnginePolling: Got poll message: 0{"sid":"S0NLdRPF5uCHUoKaAAAD","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
2021-03-02 08:47:42.005704-0500 sockettest[992:1229843] LOG SocketEngine: Got message: 0{"sid":"S0NLdRPF5uCHUoKaAAAD","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
2021-03-02 08:47:42.006542-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: ping with data: []
2021-03-02 08:47:42.006648-0500 sockettest[992:1229560] LOG SocketManager: Engine opened Connect
2021-03-02 08:47:42.006989-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Socket connected
2021-03-02 08:47:42.007041-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: statusChange with data: [connected, 3]
2021-03-02 08:47:42.007084-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: connect with data: ["/"]
2021-03-02 08:47:42.007179-0500 sockettest[992:1229843] LOG SocketEnginePolling: Doing polling GET http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=S0NLdRPF5uCHUoKaAAAD
2021-03-02 08:47:42.009173-0500 sockettest[992:1229843] LOG SocketEngine: Writing poll:  has data: false
2021-03-02 08:47:42.009252-0500 sockettest[992:1229843] LOG SocketEnginePolling: Sending poll:  as type: 2
2021-03-02 08:47:42.009302-0500 sockettest[992:1229843] LOG SocketEnginePolling: Created POST string: 1:2
2021-03-02 08:47:42.009431-0500 sockettest[992:1229843] LOG SocketEnginePolling: POSTing
2021-03-02 08:47:42.009690-0500 sockettest[992:1229843] LOG SocketEnginePolling: Doing polling POST http://ip-address:3000/socket.io/?transport=polling&b64=1&sid=S0NLdRPF5uCHUoKaAAAD
2021-03-02 08:47:42.021928-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: websocketUpgrade with data: [["upgrade": "websocket", "sec-websocket-accept": "/i3oWtmlG0z06qeeQyi4FPgnkvI=", "connection": "Upgrade"]]
2021-03-02 08:47:42.022166-0500 sockettest[992:1229850] LOG SocketEngineWebSocket: Sending ws: probe as type: 2
2021-03-02 08:47:42.026699-0500 sockettest[992:1229845] LOG SocketEngine: Got message: 3probe
2021-03-02 08:47:42.026815-0500 sockettest[992:1229845] LOG SocketEngine: Received probe response, should upgrade to WebSockets
2021-03-02 08:47:42.026860-0500 sockettest[992:1229845] LOG SocketEngine: Upgrading transport to WebSockets
2021-03-02 08:47:42.026905-0500 sockettest[992:1229845] LOG SocketEnginePolling: Sending poll:  as type: 6
2021-03-02 08:47:42.026992-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: pong with data: []
2021-03-02 08:47:42.029955-0500 sockettest[992:1229850] LOG SocketEngine: Flushing probe wait
2021-03-02 08:47:42.031221-0500 sockettest[992:1229845] LOG SocketEnginePolling: Got polling response
2021-03-02 08:47:42.031283-0500 sockettest[992:1229845] LOG SocketEngine: Switching to WebSockets
2021-03-02 08:47:42.031324-0500 sockettest[992:1229845] LOG SocketEngineWebSocket: Sending ws:  as type: 5
2021-03-02 08:47:42.031366-0500 sockettest[992:1229845] LOG SocketEngine: Flushing probe wait
2021-03-02 08:48:09.377870-0500 sockettest[992:1229843] LOG SocketEngine: Writing ws:  has data: false
2021-03-02 08:48:09.377870-0500 sockettest[992:1229560] LOG SocketIOClient{/}: Handling event: ping with data: []
2021-03-02 08:48:09.378081-0500 sockettest[992:1229843] LOG SocketEngineWebSocket: Sending ws:  as type: 2

問題不在您的 socket.io 桌面示例中。

如果您在節點應用程序的 /public/ 文件夾中放置一個socket.html文件:

<script src="http://localhost:3000/socket.io/socket.io.js"></script>
<script>
  const socket = io();
</script>

然后打開: http://localhost:3000/socket.html

您將看到 socket.io 服務器返回日志:

listening on port 3001
a user connected

我跑了:

const app = require('express')();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
const port = process.env.PORT || 3000;


function onConnection(socket){
  console.log('a user connected');
  socket.on('disconnect', onDisconnection);
}

function onDisconnection(socket){
  console.log('a user disconnected');
}

io.on('connection', onConnection);
app.use(require('express').static(__dirname + '/public'));

server.listen(port, () => console.log('listening on port ' + port));

@尼克編碼

為什么不嘗試從自定義函數而不是 init 方法調用事件。 您可以執行以下操作。

class PDSocketManager: NSObject {

class var shared: PDSocketManager {
    struct Static{
        static let instance = PDSocketManager()
    }
    return Static.instance
}

var socket: SocketIOClient?
fileprivate var manager: SocketManager?

fileprivate override init(){}

func establishConnection(_ completion: (() -> Void)? = nil) {
    let socketUrlString: String = "\(WebService.SOCKET_URL)"
    self.manager = SocketManager(socketURL: URL(string: socketUrlString)!, config: [.log(true), .reconnects(true), .version(.two), .extraHeaders(["header": "customheader"])])
    self.socket = manager?.defaultSocket
    self.socket?.connect()
    
    self.socket?.once(clientEvent: .connect, callback: { (data, emitter) in
        print("\n\n\n connection done!! \n\n\n")
        if completion != nil{
            completion!()
        }
    })
}

func connect()  {
    socket?.connect()
    print("socket coonect")
}

func disconnect()  {
    socket?.disconnect()
}

func checkSocktConnect() -> Bool {
    if let myManager = self.manager{
        if myManager.status == SocketIOStatus.connected{
          return true
        }else {
            self.socket?.connect()
            return false
        }
    } else{
        return false
    }
} }

連接套接字會像

//MARK:- Connect Socket
    PDSocketManager.shared.establishConnection()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM