shuoli84 / SocketIOCocoa

The socket 1.0 client in Swift
175 stars 11 forks source link

Double connection #22

Closed ZloyDyadka closed 9 years ago

ZloyDyadka commented 9 years ago

When I try to connect to my server via SocketIOClient I’m getting two connections and then when I’m trying to send something, my emit duplicates. First of all I open a client and then I open a socket delegated to client code example:

private struct kSocketHandler
{
    var socket: SocketIOSocket
    var handlers: NSMutableArray
    // events
    var eventSheet: kSocketEventSheet?

    init(Socket s: SocketIOSocket)
    {
        socket = s
        handlers = NSMutableArray()
    }

    ....

}

....

internal class kSocketManager: SocketIOClientDelegate, SocketIOSocketDelegate

....

var client: SocketIOClient

private var sockets: [kSocketHandler]

....

// initilization
client = SocketIOClient(uri: u, transports: ["websocket"], autoConnect: false, reconnect: false, reconnectAttempts: 0, reconnectDelay: 5, reconnectDelayMax: 10, timeout: 7)
client.delegate = self

....

// initialization of the socket (with a small wrapper)
var newSocket = kSocketHandler(Socket: self.client.socket(namespace))

newSocket.socket.delegate = self
newSocket.eventSheet = socketEventSheet
newSocket.socket.open()

self.sockets.append(newSocket)

So, I receive «OnSocketOpen» event twice every time i try to run this code.

Any suggestions? Sincerely yours.

d connection

shuoli84 commented 9 years ago

Any log from SocketIOCocoa?

ZloyDyadka commented 9 years ago
Loaded 'ru' localization
2015-03-01 21:34:27.939 Kessenger[19861:1950612] [SocketIOClient] ready state: Closed
2015-03-01 21:34:27.940 Kessenger[19861:1950612] [SocketIOClient] Opening
2015-03-01 21:34:27.940 Kessenger[19861:1950612] connect attempt will timeout after 7 seconds
2015-03-01 21:34:27.940 Kessenger[19861:1950612] [SocketIOClient] ready state: Opening
2015-03-01 21:34:27.943 Kessenger[19861:1950643] [D][WebsocketTransport][Opening] Connecting ws://25.172.99.52:3000/socket.io/?transport=websocket&t=1425234867&EIO=3
2015-03-01 21:34:27.989 Kessenger[19861:1950643] [D][WebsocketTransport][Opening] Websocket transport connected
2015-03-01 21:34:27.990 Kessenger[19861:1950643] [D][EngineSocket(nil)][Opening][Upg:0][TW:1] Underlying transport opened
2015-03-01 21:34:27.990 Kessenger[19861:1950643] [D][WebsocketTransport][Open] Received text message 0{"sid":"QlmwbCN-4UeMRxNIAAAA","upgrades":[],"pingInterval":25000,"pingTimeout":60000}
2015-03-01 21:34:27.991 Kessenger[19861:1950643] [I][EngineSocket(nil)][Opening][Upg:0][TW:1] Receive: [[Open][Binary: false]: {"sid":"QlmwbCN-4UeMRxNIAAAA","upgrades":[],"pingInterval":25000,"pingTimeout":60000}]
2015-03-01 21:34:27.994 Kessenger[19861:1950643] [D][EngineSocket(Optional("QlmwbCN-4UeMRxNIAAAA"))][Opening][Upg:0][TW:1] Socket Open
2015-03-01 21:34:27.994 Kessenger[19861:1950645] [SocketIOClient][Open Underlying engine socket connected
[Socket M2015-03-01 21:34:27.994 Kessenger[19861:1950643] [D][EngineSocket(Optional("QlmwbCN-4UeMRxNIAAAA"))][Open][Upg:0][TW:1] The writeQueue is empty, return
anager]:client: connected
2015-03-01 21:34:27.994 Kessenger[19861:1950645] [SocketIOSocket][/][U] connect to namespace
2015-03-01 21:34:27.994 Kessenger[19861:1950643] [D][EngineSocket(Optional("QlmwbCN-4UeMRxNIAAAA"))][Open][Upg:0][TW:1] Setting up ping and reset timeout
2015-03-01 21:34:27.995 Kessenger[19861:1950643] [D][WebsocketTransport][Open] Received text message 40
2015-03-01 21:34:27.995 Kessenger[19861:1950645] [SocketIOClient][Open] Sending packet [Connect][NS:Optional("/")][DATA<nil>]
2015-03-01 21:34:27.995 Kessenger[19861:1950643] [I][EngineSocket(Optional("QlmwbCN-4UeMRxNIAAAA"))][Open][Upg:0][TW:1] Receive: [[Message][Binary: false]: 0]
2015-03-01 21:34:27.995 Kessenger[19861:1950643] [SocketIOClient][Open] got packet from underlying socket
[Socket Manager]:client: packed recieved
[Socket Manager]:socket: connected
2015-03-01 21:34:27.995 Kessenger[19861:1950643] [D][EngineSocket(Optional("QlmwbCN-4UeMRxNIAAAA"))][Open][Upg:0][TW:1] Enqueue packet
2015-03-01 21:34:27.995 Kessenger[19861:1950643] [D][EngineSocket(Optional("QlmwbCN-4UeMRxNIAAAA"))][Open][Upg:0][TW:1] Flushing 1 packets
2015-03-01 21:34:28.017 Kessenger[19861:1950643] [D][WebsocketTransport][Open] Received text message 40
2015-03-01 21:34:28.017 Kessenger[19861:1950643] [I][EngineSocket(Optional("QlmwbCN-4UeMRxNIAAAA"))][Open][Upg:0][TW:1] Receive: [[Message][Binary: false]: 0]
2015-03-01 21:34:28.018 Kessenger[19861:1950643] [SocketIOClient][Open] got packet from underlying socket
[Socket Manager]:client: packed recieved
[Socket Manager]:socket: connected
shuoli84 commented 9 years ago

Got it. It is quite clear what happened. I'll fix this this evening. Thanks for reporting this. :)