[
  {
    "path": ".gitignore",
    "content": ".DS_Store\n.AppleDouble\n.LSOverride\n*.xcodeproj\n.build/*\nPackages/*\n\n# Icon must end with two \\r\nIcon\n\n\n# Thumbnails\n._*\n\n# Files that might appear in the root of a volume\n.DocumentRevisions-V100\n.fseventsd\n.Spotlight-V100\n.TemporaryItems\n.Trashes\n.VolumeIcon.icns\n\n# Directories potentially created on remote AFP share\n.AppleDB\n.AppleDesktop\nNetwork Trash Folder\nTemporary Items\n.apdisk\n\n# Xcode\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!default.perspectivev3\nxcuserdata\n*.xccheckout\n*.moved-aside\nDerivedData\n*.hmap\n*.ipa\n*.xcuserstate\n\nSocket.IO-Test-Server/node_modules/*\n\n.idea/\ndocs/docsets/\ndocs/undocumented.json\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: objective-c\nxcode_project: Socket.IO-Client-Swift.xcodeproj # path to your xcodeproj folder\nxcode_scheme: SocketIO-Mac\nosx_image: xcode12.2\nbranches:\n  only:\n    - master\n    - development\nbefore_install:\n  # - brew update\n  # - brew outdated xctool || brew upgrade xctool\n  # - brew outdated carthage || brew upgrade carthage\n  - carthage update --platform macosx\nscript:\n  - xcodebuild -project Socket.IO-Client-Swift.xcodeproj -scheme SocketIO build test -quiet\n#  - xcodebuild -project Socket.IO-Client-Swift.xcodeproj -scheme SocketIO build-for-testing -quiet\n#  - xctool -project Socket.IO-Client-Swift.xcodeproj -scheme SocketIO run-tests --parallelize\n  - swift test\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# v16.0.0\n\n- Removed Objective-C support. It's time for you to embrace Swift.\n- Socket.io 3 support.\n\n# v15.3.0\n\n- Add `==` operators for `SocketAckStatus` and `String`\n\n# v15.2.0\n\n- Small fixes.\n\n# v15.1.0\n\n- Add ability to enable websockets SOCKS proxy.\n- Fix emit completion callback not firing on websockets [#1178](https://github.com/socketio/socket.io-client-swift/issues/1178)\n\n# v15.0.0\n\n- Swift 5\n\n# v14.0.0\n\n- Minimum version of the client is now Swift 4.2.\n- Add exponential backoff for reconnects, with `reconnectWaitMax` and `randomizationFactor` options [#1149](https://github.com/socketio/socket.io-client-swift/pull/1149)\n- `statusChange` event's data format adds a second value, the raw value of the status. This is for use in Objective-C. [#1147](https://github.com/socketio/socket.io-client-swift/issues/1147)\n\n# v13.4.0\n\n- Add emits with write completion handlers. [#1096](https://github.com/socketio/socket.io-client-swift/issues/1096)\n- Add ability to listen for when a websocket upgrade happens\n\n# v13.3.1\n\n- Fixes various bugs. [#857](https://github.com/socketio/socket.io-client-swift/issues/857), [#1078](https://github.com/socketio/socket.io-client-swift/issues/1078)\n\n# v13.3.0\n\n- Copy cookies from polling to WebSockets ([#1057](https://github.com/socketio/socket.io-client-swift/issues/1057), [#1058](https://github.com/socketio/socket.io-client-swift/issues/1058))\n\n# v13.2.1\n\n- Fix packets getting lost when WebSocket upgrade fails. [#1033](https://github.com/socketio/socket.io-client-swift/issues/1033)\n- Fix bad unit tests. [#794](https://github.com/socketio/socket.io-client-swift/issues/794)\n\n# v13.2.0\n\n- Add ability to bypass Data inspection in emits. [#992]((https://github.com/socketio/socket.io-client-swift/issues/992))\n- Allow `SocketEngine` to be subclassed\n\n# v13.1.3\n\n- Fix setting reconnectAttempts [#989]((https://github.com/socketio/socket.io-client-swift/issues/989))\n\n\n# v13.1.2\n\n- Fix [#950](https://github.com/socketio/socket.io-client-swift/issues/950)\n- Conforming to `SocketEngineWebsocket` no longer requires conforming to `WebsocketDelegate`\n\n\n# v13.1.1\n\n- Fix [#923](https://github.com/socketio/socket.io-client-swift/issues/923)\n- Fix [#894](https://github.com/socketio/socket.io-client-swift/issues/894)\n\n# v13.1.0\n\n- Allow setting `SocketEngineSpec.extraHeaders` after init.\n- Deprecate `SocketEngineSpec.websocket` in favor of just using the `SocketEngineSpec.polling` property.\n- Enable bitcode for most platforms.\n- Fix [#882](https://github.com/socketio/socket.io-client-swift/issues/882). This adds a new method\n`SocketManger.removeSocket(_:)` that should be called if when you no longer wish to use a socket again.\nThis will cause the engine to no longer keep a strong reference to the socket and no longer track it.\n\n# v13.0.1\n\n- Fix not setting handleQueue on `SocketManager`\n\n# v13.0.0\n\nCheckout out the migration guide in Usage Docs for a more detailed guide on how to migrate to this version.\n\nWhat's new:\n---\n\n- Adds a new `SocketManager` class that multiplexes multiple namespaces through a single engine.\n- Adds `.sentPing` and `.gotPong` client events for tracking ping/pongs.\n- watchOS support.\n\nImportant API changes\n---\n\n- Many properties that were previously on `SocketIOClient` have been moved to the `SocketManager`.\n- `SocketIOClientOption.nsp` has been removed. Use `SocketManager.socket(forNamespace:)` to create/get a socket attached to a specific namespace.\n- Adds `.sentPing` and `.gotPong` client events for tracking ping/pongs.\n- Makes the framework a single target.\n- Updates Starscream to 3.0\n"
  },
  {
    "path": "Cartfile",
    "content": "github \"daltoniam/Starscream\" ~> 4.0\n"
  },
  {
    "path": "Cartfile.resolved",
    "content": "github \"daltoniam/Starscream\" \"4.0.4\"\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014-2015 Erik Little\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\n\nThis library makes use of the following third party libraries:\n\nStarscream\n----------\n\nApache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "Package.resolved",
    "content": "{\n  \"object\": {\n    \"pins\": [\n      {\n        \"package\": \"Starscream\",\n        \"repositoryURL\": \"https://github.com/daltoniam/Starscream\",\n        \"state\": {\n          \"branch\": null,\n          \"revision\": \"df8d82047f6654d8e4b655d1b1525c64e1059d21\",\n          \"version\": \"4.0.4\"\n        }\n      }\n    ]\n  },\n  \"version\": 1\n}\n"
  },
  {
    "path": "Package.swift",
    "content": "// swift-tools-version:5.3\n\nimport PackageDescription\n\nlet package = Package(\n    name: \"SocketIO\",\n    products: [\n        .library(name: \"SocketIO\", targets: [\"SocketIO\"])\n    ],\n    dependencies: [\n        .package(url: \"https://github.com/daltoniam/Starscream\", .upToNextMinor(from: \"4.0.0\")),\n    ],\n    targets: [\n        .target(name: \"SocketIO\", dependencies: [\"Starscream\"]),\n        .testTarget(name: \"TestSocketIO\", dependencies: [\"SocketIO\"]),\n    ]\n)\n"
  },
  {
    "path": "README.md",
    "content": "[![Build Status](https://travis-ci.org/socketio/socket.io-client-swift.svg?branch=master)](https://travis-ci.org/socketio/socket.io-client-swift)\n\n# Socket.IO-Client-Swift\nSocket.IO-client for iOS/OS X.\n\n## Example\n```swift\nimport SocketIO\n\nlet manager = SocketManager(socketURL: URL(string: \"http://localhost:8080\")!, config: [.log(true), .compress])\nlet socket = manager.defaultSocket\n\nsocket.on(clientEvent: .connect) {data, ack in\n    print(\"socket connected\")\n}\n\nsocket.on(\"currentAmount\") {data, ack in\n    guard let cur = data[0] as? Double else { return }\n    \n    socket.emitWithAck(\"canUpdate\", cur).timingOut(after: 0) {data in\n        if data.first as? String ?? \"passed\" == SocketAckValue.noAck {\n            // Handle ack timeout \n        }\n\n        socket.emit(\"update\", [\"amount\": cur + 2.50])\n    }\n\n    ack.with(\"Got your currentAmount\", \"dude\")\n}\n\nsocket.connect()\n```\n\n## Features\n- Supports socket.io 2.0+/3.0+.\n- Supports Binary\n- Supports Polling and WebSockets\n- Supports TLS/SSL\n\n## FAQS\nCheckout the [FAQs](https://nuclearace.github.io/Socket.IO-Client-Swift/faq.html) for commonly asked questions.\n\n\nCheckout the [12to13](https://nuclearace.github.io/Socket.IO-Client-Swift/12to13.html) guide for migrating to v13+ from v12 below.\n\nCheckout the [15to16](https://nuclearace.github.io/Socket.IO-Client-Swift/15to16.html) guide for migrating to v16+ from v15.\n\n## Installation\nRequires Swift 4/5 and Xcode 10.x\n\n### Swift Package Manager\nAdd the project as a dependency to your Package.swift:\n```swift\n// swift-tools-version:4.2\n\nimport PackageDescription\n\nlet package = Package(\n    name: \"socket.io-test\",\n    products: [\n        .executable(name: \"socket.io-test\", targets: [\"YourTargetName\"])\n    ],\n    dependencies: [\n        .package(url: \"https://github.com/socketio/socket.io-client-swift\", .upToNextMinor(from: \"15.0.0\"))\n    ],\n    targets: [\n        .target(name: \"YourTargetName\", dependencies: [\"SocketIO\"], path: \"./Path/To/Your/Sources\")\n    ]\n)\n```\n\nThen import `import SocketIO`.\n\n### Carthage\nAdd this line to your `Cartfile`:\n```\ngithub \"socketio/socket.io-client-swift\" ~> 15.2.0\n```\n\nRun `carthage update --platform ios,macosx`.\n\nAdd the `Starscream` and `SocketIO` frameworks to your projects and follow the usual Carthage process.\n\n### CocoaPods 1.0.0 or later\nCreate `Podfile` and add `pod 'Socket.IO-Client-Swift'`:\n\n```ruby\nuse_frameworks!\n\ntarget 'YourApp' do\n    pod 'Socket.IO-Client-Swift', '~> 15.2.0'\nend\n```\n\nInstall pods:\n\n```\n$ pod install\n```\n\nImport the module:\n\nSwift:\n```swift\nimport SocketIO\n```\n\nObjective-C:\n\n```Objective-C\n@import SocketIO;\n```\n\n\n# [Docs](https://nuclearace.github.io/Socket.IO-Client-Swift/index.html)\n\n- [Client](https://nuclearace.github.io/Socket.IO-Client-Swift/Classes/SocketIOClient.html)\n- [Manager](https://nuclearace.github.io/Socket.IO-Client-Swift/Classes/SocketManager.html)\n- [Engine](https://nuclearace.github.io/Socket.IO-Client-Swift/Classes/SocketEngine.html)\n- [Options](https://nuclearace.github.io/Socket.IO-Client-Swift/Enums/SocketIOClientOption.html)\n\n## Detailed Example\nA more detailed example can be found [here](https://github.com/nuclearace/socket.io-client-swift-example)\n\nAn example using the Swift Package Manager can be found [here](https://github.com/nuclearace/socket.io-client-swift-spm-example)\n\n## License\nMIT\n"
  },
  {
    "path": "Socket.IO-Client-Swift.podspec",
    "content": "Pod::Spec.new do |s|\n  s.name         = \"Socket.IO-Client-Swift\"\n  s.module_name  = \"SocketIO\"\n  s.version      = \"16.0.1\"\n  s.summary      = \"Socket.IO-client for iOS and OS X\"\n  s.description  = <<-DESC\n                   Socket.IO-client for iOS and OS X.\n                   Supports ws/wss/polling connections and binary.\n                   For socket.io 3.0+ and Swift.\n                   DESC\n  s.homepage     = \"https://github.com/socketio/socket.io-client-swift\"\n  s.license      = { :type => 'MIT' }\n  s.author       = { \"Erik\" => \"nuclear.ace@gmail.com\" }\n  s.ios.deployment_target = '10.0'\n  s.osx.deployment_target = '10.13'\n  s.tvos.deployment_target = '10.0'\n  s.watchos.deployment_target = '5.0'\n  s.requires_arc = true\n  s.source = {\n    :git => \"https://github.com/socketio/socket.io-client-swift.git\",\n    :tag => 'v16.0.1',\n    :submodules => true\n  }\n\n  s.swift_version = \"5\"\n  s.pod_target_xcconfig = {\n      'SWIFT_VERSION' => '5.0'\n  }\n  s.source_files  = \"Source/SocketIO/**/*.swift\", \"Source/SocketIO/*.swift\"\n  s.dependency \"Starscream\", \"~> 4.0\"\nend\n"
  },
  {
    "path": "SocketIO/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>FMWK</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(CURRENT_PROJECT_VERSION)</string>\n\t<key>NSPrincipalClass</key>\n\t<string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "SocketIO/SocketIO.h",
    "content": "//\n//  SocketIO-Mac.h\n//  SocketIO-Mac\n//\n//  Created by Nacho Soto on 7/11/15.\n//\n//\n\n#import <Foundation/Foundation.h>\n\n//! Project version number for SocketIO-Mac.\nFOUNDATION_EXPORT double SocketIO_MacVersionNumber;\n\n//! Project version string for SocketIO-Mac.\nFOUNDATION_EXPORT const unsigned char SocketIO_MacVersionString[];\n\n// In this header, you should import all the public headers of your framework using statements like #import <SocketIO_Mac/PublicHeader.h>\n\n\n"
  },
  {
    "path": "Source/SocketIO/Ack/SocketAckEmitter.swift",
    "content": "//\n//  SocketAckEmitter.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 9/16/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Dispatch\nimport Foundation\n\n/// A class that represents a waiting ack call.\n///\n/// **NOTE**: You should not store this beyond the life of the event handler.\npublic final class SocketAckEmitter : NSObject {\n    private unowned let socket: SocketIOClient\n    private let ackNum: Int\n\n    /// A view into this emitter where emits do not check for binary data.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// ack.rawEmitView.with(myObject)\n    /// ```\n    ///\n    /// **NOTE**: It is not safe to hold on to this view beyond the life of the socket.\n    @objc\n    public private(set) lazy var rawEmitView = SocketRawAckView(socket: socket, ackNum: ackNum)\n\n    // MARK: Properties\n\n    /// If true, this handler is expecting to be acked. Call `with(_: SocketData...)` to ack.\n    public var expected: Bool {\n        return ackNum != -1\n    }\n\n    // MARK: Initializers\n\n    /// Creates a new `SocketAckEmitter`.\n    ///\n    /// - parameter socket: The socket for this emitter.\n    /// - parameter ackNum: The ack number for this emitter.\n    public init(socket: SocketIOClient, ackNum: Int) {\n        self.socket = socket\n        self.ackNum = ackNum\n    }\n\n    // MARK: Methods\n\n    /// Call to ack receiving this event.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[ackNum, items, theError]`\n    ///\n    /// - parameter items: A variable number of items to send when acking.\n    public func with(_ items: SocketData...) {\n        guard ackNum != -1 else { return }\n\n        do {\n            socket.emitAck(ackNum, with: try items.map({ try $0.socketRepresentation() }))\n        } catch {\n            socket.handleClientEvent(.error, data: [ackNum, items, error])\n        }\n    }\n\n    /// Call to ack receiving this event.\n    ///\n    /// - parameter items: An array of items to send when acking. Use `[]` to send nothing.\n    @objc\n    public func with(_ items: [Any]) {\n        guard ackNum != -1 else { return }\n\n        socket.emitAck(ackNum, with: items)\n    }\n\n}\n\n/// A class that represents an emit that will request an ack that has not yet been sent.\n/// Call `timingOut(after:callback:)` to complete the emit\n/// Example:\n///\n/// ```swift\n/// socket.emitWithAck(\"myEvent\").timingOut(after: 1) {data in\n///     ...\n/// }\n/// ```\npublic final class OnAckCallback : NSObject {\n    private let ackNumber: Int\n    private let binary: Bool\n    private let items: [Any]\n\n    private weak var socket: SocketIOClient?\n\n    init(ackNumber: Int, items: [Any], socket: SocketIOClient, binary: Bool = true) {\n        self.ackNumber = ackNumber\n        self.items = items\n        self.socket = socket\n        self.binary = binary\n    }\n\n    /// :nodoc:\n    deinit {\n        DefaultSocketLogger.Logger.log(\"OnAckCallback for \\(ackNumber) being released\", type: \"OnAckCallback\")\n    }\n\n    // MARK: Methods\n\n    /// Completes an emitWithAck. If this isn't called, the emit never happens.\n    ///\n    /// - parameter seconds: The number of seconds before this emit times out if an ack hasn't been received.\n    /// - parameter callback: The callback called when an ack is received, or when a timeout happens.\n    ///                       To check for timeout, use `SocketAckStatus`'s `noAck` case.\n    @objc\n    public func timingOut(after seconds: Double, callback: @escaping AckCallback) {\n        guard let socket = self.socket, ackNumber != -1 else { return }\n\n        socket.ackHandlers.addAck(ackNumber, callback: callback)\n        socket.emit(items, ack: ackNumber, binary: binary)\n\n        guard seconds != 0 else { return }\n\n        socket.manager?.handleQueue.asyncAfter(deadline: DispatchTime.now() + seconds) {[weak socket] in\n            guard let socket = socket else { return }\n\n            socket.ackHandlers.timeoutAck(self.ackNumber)\n        }\n    }\n\n}\n"
  },
  {
    "path": "Source/SocketIO/Ack/SocketAckManager.swift",
    "content": "//\n//  SocketAckManager.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 4/3/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Dispatch\nimport Foundation\n\n/// The status of an ack.\npublic enum SocketAckStatus : String {\n    // MARK: Cases\n\n    /// The ack timed out.\n    case noAck = \"NO ACK\"\n\n    /// Tests whether a string is equal to a given SocketAckStatus\n    public static func == (lhs: String, rhs: SocketAckStatus) -> Bool {\n        return lhs == rhs.rawValue\n    }\n\n    /// Tests whether a string is equal to a given SocketAckStatus\n    public static func == (lhs: SocketAckStatus, rhs: String) -> Bool {\n        return rhs == lhs\n    }\n}\n\nprivate struct SocketAck : Hashable {\n    let ack: Int\n    var callback: AckCallback!\n\n    init(ack: Int) {\n        self.ack = ack\n    }\n\n    init(ack: Int, callback: @escaping AckCallback) {\n        self.ack = ack\n        self.callback = callback\n    }\n\n    func hash(into hasher: inout Hasher) {\n        ack.hash(into: &hasher)\n    }\n\n    fileprivate static func <(lhs: SocketAck, rhs: SocketAck) -> Bool {\n        return lhs.ack < rhs.ack\n    }\n\n    fileprivate static func ==(lhs: SocketAck, rhs: SocketAck) -> Bool {\n        return lhs.ack == rhs.ack\n    }\n}\n\nclass SocketAckManager {\n    private var acks = Set<SocketAck>(minimumCapacity: 1)\n\n    func addAck(_ ack: Int, callback: @escaping AckCallback) {\n        acks.insert(SocketAck(ack: ack, callback: callback))\n    }\n\n    /// Should be called on handle queue\n    func executeAck(_ ack: Int, with items: [Any]) {\n        acks.remove(SocketAck(ack: ack))?.callback(items)\n    }\n\n    /// Should be called on handle queue\n    func timeoutAck(_ ack: Int) {\n       acks.remove(SocketAck(ack: ack))?.callback?([SocketAckStatus.noAck.rawValue])\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Client/SocketAnyEvent.swift",
    "content": "//\n//  SocketAnyEvent.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 3/28/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\n\n/// Represents some event that was received.\npublic final class SocketAnyEvent : NSObject {\n    // MARK: Properties\n\n    /// The event name.\n    @objc\n    public let event: String\n\n    /// The data items for this event.\n    @objc\n    public let items: [Any]?\n\n    /// The description of this event.\n    override public var description: String {\n        return \"SocketAnyEvent: Event: \\(event) items: \\(String(describing: items))\"\n    }\n\n    init(event: String, items: [Any]?) {\n        self.event = event\n        self.items = items\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Client/SocketEventHandler.swift",
    "content": "//\n//  EventHandler.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 1/18/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\n\n/// A wrapper around a handler.\npublic struct SocketEventHandler {\n    // MARK: Properties\n\n    /// The event for this handler.\n    public let event: String\n\n    /// A unique identifier for this handler.\n    public let id: UUID\n\n    /// The actual handler function.\n    public let callback: NormalCallback\n\n    // MARK: Methods\n\n    /// Causes this handler to be executed.\n    ///\n    /// - parameter with: The data that this handler should be called with.\n    /// - parameter withAck: The ack number that this event expects. Pass -1 to say this event doesn't expect an ack.\n    /// - parameter withSocket: The socket that is calling this event.\n    public func executeCallback(with items: [Any], withAck ack: Int, withSocket socket: SocketIOClient) {\n        callback(items, SocketAckEmitter(socket: socket, ackNum: ack))\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Client/SocketIOClient.swift",
    "content": "//\n//  SocketIOClient.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 11/23/14.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Dispatch\nimport Foundation\n\n/// Represents a socket.io-client.\n///\n/// Clients are created through a `SocketManager`, which owns the `SocketEngineSpec` that controls the connection to the server.\n///\n/// For example:\n///\n/// ```swift\n/// // Create a socket for the /swift namespace\n/// let socket = manager.socket(forNamespace: \"/swift\")\n///\n/// // Add some handlers and connect\n/// ```\n///\n/// **NOTE**: The client is not thread/queue safe, all interaction with the socket should be done on the `manager.handleQueue`\n///\nopen class SocketIOClient: NSObject, SocketIOClientSpec {\n    // MARK: Properties\n\n    /// The namespace that this socket is currently connected to.\n    ///\n    /// **Must** start with a `/`.\n    public let nsp: String\n\n    /// A handler that will be called on any event.\n    public private(set) var anyHandler: ((SocketAnyEvent) -> ())?\n\n    /// The array of handlers for this socket.\n    public private(set) var handlers = [SocketEventHandler]()\n\n    /// The manager for this socket.\n    public private(set) weak var manager: SocketManagerSpec?\n\n    /// A view into this socket where emits do not check for binary data.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// socket.rawEmitView.emit(\"myEvent\", myObject)\n    /// ```\n    ///\n    /// **NOTE**: It is not safe to hold on to this view beyond the life of the socket.\n    public private(set) lazy var rawEmitView = SocketRawView(socket: self)\n\n    /// The status of this client.\n    public private(set) var status = SocketIOStatus.notConnected {\n        didSet {\n            handleClientEvent(.statusChange, data: [status, status.rawValue])\n        }\n    }\n\n    /// The id of this socket.io connect. This is different from the sid of the engine.io connection.\n    public private(set) var sid: String?\n\n    let ackHandlers = SocketAckManager()\n    var connectPayload: [String: Any]?\n\n    private(set) var currentAck = -1\n\n    private lazy var logType = \"SocketIOClient{\\(nsp)}\"\n\n    // MARK: Initializers\n\n    /// Type safe way to create a new SocketIOClient. `opts` can be omitted.\n    ///\n    /// - parameter manager: The manager for this socket.\n    /// - parameter nsp: The namespace of the socket.\n    public init(manager: SocketManagerSpec, nsp: String) {\n        self.manager = manager\n        self.nsp = nsp\n\n        super.init()\n    }\n\n    /// :nodoc:\n    deinit {\n        DefaultSocketLogger.Logger.log(\"Client is being released\", type: logType)\n    }\n\n    // MARK: Methods\n\n    /// Connect to the server. The same as calling `connect(timeoutAfter:withHandler:)` with a timeout of 0.\n    ///\n    /// Only call after adding your event listeners, unless you know what you're doing.\n    ///\n    /// - parameter withPayload: An optional payload sent on connect\n    open func connect(withPayload payload: [String: Any]? = nil) {\n        connect(withPayload: payload, timeoutAfter: 0, withHandler: nil)\n    }\n\n    /// Connect to the server. If we aren't connected after `timeoutAfter` seconds, then `withHandler` is called.\n    ///\n    /// Only call after adding your event listeners, unless you know what you're doing.\n    ///\n    /// - parameter withPayload: An optional payload sent on connect\n    /// - parameter timeoutAfter: The number of seconds after which if we are not connected we assume the connection\n    ///                           has failed. Pass 0 to never timeout.\n    /// - parameter handler: The handler to call when the client fails to connect.\n    open func connect(withPayload payload: [String: Any]? = nil, timeoutAfter: Double, withHandler handler: (() -> ())?) {\n        assert(timeoutAfter >= 0, \"Invalid timeout: \\(timeoutAfter)\")\n\n        guard let manager = self.manager, status != .connected else {\n            DefaultSocketLogger.Logger.log(\"Tried connecting on an already connected socket\", type: logType)\n            return\n        }\n\n        status = .connecting\n\n        joinNamespace(withPayload: payload)\n\n        switch manager.version {\n        case .three:\n            break\n        case .two where manager.status == .connected && nsp == \"/\":\n            // We might not get a connect event for the default nsp, fire immediately\n            didConnect(toNamespace: nsp, payload: nil)\n\n            return\n        case _:\n            break\n        }\n\n        guard timeoutAfter != 0 else { return }\n\n        manager.handleQueue.asyncAfter(deadline: DispatchTime.now() + timeoutAfter) {[weak self] in\n            guard let this = self, this.status == .connecting || this.status == .notConnected else { return }\n\n            this.status = .disconnected\n            this.leaveNamespace()\n\n            handler?()\n        }\n    }\n\n    func createOnAck(_ items: [Any], binary: Bool = true) -> OnAckCallback {\n        currentAck += 1\n\n        return OnAckCallback(ackNumber: currentAck, items: items, socket: self)\n    }\n\n    /// Called when the client connects to a namespace. If the client was created with a namespace upfront,\n    /// then this is only called when the client connects to that namespace.\n    ///\n    /// - parameter toNamespace: The namespace that was connected to.\n    open func didConnect(toNamespace namespace: String, payload: [String: Any]?) {\n        guard status != .connected else { return }\n\n        DefaultSocketLogger.Logger.log(\"Socket connected\", type: logType)\n\n        status = .connected\n        sid = payload?[\"sid\"] as? String\n\n        handleClientEvent(.connect, data: payload == nil ? [namespace] : [namespace, payload!])\n    }\n\n    /// Called when the client has disconnected from socket.io.\n    ///\n    /// - parameter reason: The reason for the disconnection.\n    open func didDisconnect(reason: String) {\n        guard status != .disconnected else { return }\n\n        DefaultSocketLogger.Logger.log(\"Disconnected: \\(reason)\", type: logType)\n\n        status = .disconnected\n        sid = \"\"\n\n        handleClientEvent(.disconnect, data: [reason])\n    }\n\n    /// Disconnects the socket.\n    ///\n    /// This will cause the socket to leave the namespace it is associated to, as well as remove itself from the\n    /// `manager`.\n    open func disconnect() {\n        DefaultSocketLogger.Logger.log(\"Closing socket\", type: logType)\n\n        leaveNamespace()\n    }\n\n    /// Send an event to the server, with optional data items and optional write completion handler.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[eventName, items, theError]`\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. May be left out.\n    /// - parameter completion: Callback called on transport write completion.\n    open func emit(_ event: String, _ items: SocketData..., completion: (() -> ())? = nil)  {\n        emit(event, with: items, completion: completion)\n    }\n    \n    /// Send an event to the server, with optional data items and optional write completion handler.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[eventName, items, theError]`\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. May be left out.\n    /// - parameter completion: Callback called on transport write completion.\n    open func emit(_ event: String, with items: [SocketData], completion: (() -> ())?) {\n        \n        do {\n            emit([event] + (try items.map({ try $0.socketRepresentation() })), completion: completion)\n        } catch {\n            DefaultSocketLogger.Logger.error(\"Error creating socketRepresentation for emit: \\(event), \\(items)\",\n                                             type: logType)\n\n            handleClientEvent(.error, data: [event, items, error])\n        }\n    }\n\n    /// Sends a message to the server, requesting an ack.\n    ///\n    /// **NOTE**: It is up to the server send an ack back, just calling this method does not mean the server will ack.\n    /// Check that your server's api will ack the event being sent.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[eventName, items, theError]`\n    ///\n    /// Example:\n    ///\n    /// ```swift\n    /// socket.emitWithAck(\"myEvent\", 1).timingOut(after: 1) {data in\n    ///     ...\n    /// }\n    /// ```\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. May be left out.\n    /// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent.\n    open func emitWithAck(_ event: String, _ items: SocketData...) -> OnAckCallback {\n        emitWithAck(event, with: items)\n    }\n    \n    /// Sends a message to the server, requesting an ack.\n    ///\n    /// **NOTE**: It is up to the server send an ack back, just calling this method does not mean the server will ack.\n    /// Check that your server's api will ack the event being sent.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[eventName, items, theError]`\n    ///\n    /// Example:\n    ///\n    /// ```swift\n    /// socket.emitWithAck(\"myEvent\", 1).timingOut(after: 1) {data in\n    ///     ...\n    /// }\n    /// ```\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. May be left out.\n    /// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent.\n    open func emitWithAck(_ event: String, with items: [SocketData]) -> OnAckCallback {\n        \n        do {\n            return createOnAck([event] + (try items.map({ try $0.socketRepresentation() })))\n        } catch {\n            DefaultSocketLogger.Logger.error(\"Error creating socketRepresentation for emit: \\(event), \\(items)\",\n                                             type: logType)\n\n            handleClientEvent(.error, data: [event, items, error])\n\n            return OnAckCallback(ackNumber: -1, items: [], socket: self)\n        }\n    }\n\n    func emit(_ data: [Any],\n              ack: Int? = nil,\n              binary: Bool = true,\n              isAck: Bool = false,\n              completion: (() -> ())? = nil\n    ) {\n        // wrap the completion handler so it always runs async via handlerQueue\n        let wrappedCompletion: (() -> ())? = (completion == nil) ? nil : {[weak self] in\n            guard let this = self else { return }\n            this.manager?.handleQueue.async {\n                completion!()\n            }\n        }\n\n        guard status == .connected else {\n            wrappedCompletion?()\n            handleClientEvent(.error, data: [\"Tried emitting when not connected\"])\n            return\n        }\n\n        let packet = SocketPacket.packetFromEmit(data, id: ack ?? -1, nsp: nsp, ack: isAck, checkForBinary: binary)\n        let str = packet.packetString\n\n        DefaultSocketLogger.Logger.log(\"Emitting: \\(str), Ack: \\(isAck)\", type: logType)\n\n        manager?.engine?.send(str, withData: packet.binary, completion: wrappedCompletion)\n    }\n\n    /// Call when you wish to tell the server that you've received the event for `ack`.\n    ///\n    /// **You shouldn't need to call this directly.** Instead use an `SocketAckEmitter` that comes in an event callback.\n    ///\n    /// - parameter ack: The ack number.\n    /// - parameter with: The data for this ack.\n    open func emitAck(_ ack: Int, with items: [Any]) {\n        emit(items, ack: ack, binary: true, isAck: true)\n    }\n\n    /// Called when socket.io has acked one of our emits. Causes the corresponding ack callback to be called.\n    ///\n    /// - parameter ack: The number for this ack.\n    /// - parameter data: The data sent back with this ack.\n    open func handleAck(_ ack: Int, data: [Any]) {\n        guard status == .connected else { return }\n\n        DefaultSocketLogger.Logger.log(\"Handling ack: \\(ack) with data: \\(data)\", type: logType)\n\n        ackHandlers.executeAck(ack, with: data)\n    }\n\n    /// Called on socket.io specific events.\n    ///\n    /// - parameter event: The `SocketClientEvent`.\n    /// - parameter data: The data for this event.\n    open func handleClientEvent(_ event: SocketClientEvent, data: [Any]) {\n        handleEvent(event.rawValue, data: data, isInternalMessage: true)\n    }\n\n    /// Called when we get an event from socket.io.\n    ///\n    /// - parameter event: The name of the event.\n    /// - parameter data: The data that was sent with this event.\n    /// - parameter isInternalMessage: Whether this event was sent internally. If `true` it is always sent to handlers.\n    /// - parameter ack: If > 0 then this event expects to get an ack back from the client.\n    open func handleEvent(_ event: String, data: [Any], isInternalMessage: Bool, withAck ack: Int = -1) {\n        guard status == .connected || isInternalMessage else { return }\n\n        DefaultSocketLogger.Logger.log(\"Handling event: \\(event) with data: \\(data)\", type: logType)\n\n        anyHandler?(SocketAnyEvent(event: event, items: data))\n\n        for handler in handlers where handler.event == event {\n            handler.executeCallback(with: data, withAck: ack, withSocket: self)\n        }\n    }\n\n    /// Causes a client to handle a socket.io packet. The namespace for the packet must match the namespace of the\n    /// socket.\n    ///\n    /// - parameter packet: The packet to handle.\n    open func handlePacket(_ packet: SocketPacket) {\n        guard packet.nsp == nsp else { return }\n\n        switch packet.type {\n        case .event, .binaryEvent:\n            handleEvent(packet.event, data: packet.args, isInternalMessage: false, withAck: packet.id)\n        case .ack, .binaryAck:\n            handleAck(packet.id, data: packet.data)\n        case .connect:\n            didConnect(toNamespace: nsp, payload: packet.data.isEmpty ? nil : packet.data[0] as? [String: Any])\n        case .disconnect:\n            didDisconnect(reason: \"Got Disconnect\")\n        case .error:\n            handleEvent(\"error\", data: packet.data, isInternalMessage: true, withAck: packet.id)\n        }\n    }\n\n    /// Call when you wish to leave a namespace and disconnect this socket.\n    open func leaveNamespace() {\n        manager?.disconnectSocket(self)\n    }\n\n    /// Joins `nsp`. You shouldn't need to call this directly, instead call `connect`.\n    ///\n    /// - parameter withPayload: An optional payload sent on connect\n    open func joinNamespace(withPayload payload: [String: Any]? = nil) {\n        DefaultSocketLogger.Logger.log(\"Joining namespace \\(nsp)\", type: logType)\n\n        connectPayload = payload\n\n        manager?.connectSocket(self, withPayload: connectPayload)\n    }\n\n    /// Removes handler(s) for a client event.\n    ///\n    /// If you wish to remove a client event handler, call the `off(id:)` with the UUID received from its `on` call.\n    ///\n    /// - parameter clientEvent: The event to remove handlers for.\n    open func off(clientEvent event: SocketClientEvent) {\n        off(event.rawValue)\n    }\n\n    /// Removes handler(s) based on an event name.\n    ///\n    /// If you wish to remove a specific event, call the `off(id:)` with the UUID received from its `on` call.\n    ///\n    /// - parameter event: The event to remove handlers for.\n    open func off(_ event: String) {\n        DefaultSocketLogger.Logger.log(\"Removing handler for event: \\(event)\", type: logType)\n\n        handlers = handlers.filter({ $0.event != event })\n    }\n\n    /// Removes a handler with the specified UUID gotten from an `on` or `once`\n    ///\n    /// If you want to remove all events for an event, call the off `off(_:)` method with the event name.\n    ///\n    /// - parameter id: The UUID of the handler you wish to remove.\n    open func off(id: UUID) {\n        DefaultSocketLogger.Logger.log(\"Removing handler with id: \\(id)\", type: logType)\n\n        handlers = handlers.filter({ $0.id != id })\n    }\n\n    /// Adds a handler for an event.\n    ///\n    /// - parameter event: The event name for this handler.\n    /// - parameter callback: The callback that will execute when this event is received.\n    /// - returns: A unique id for the handler that can be used to remove it.\n    @discardableResult\n    open func on(_ event: String, callback: @escaping NormalCallback) -> UUID {\n        DefaultSocketLogger.Logger.log(\"Adding handler for event: \\(event)\", type: logType)\n\n        let handler = SocketEventHandler(event: event, id: UUID(), callback: callback)\n        handlers.append(handler)\n\n        return handler.id\n    }\n\n    /// Adds a handler for a client event.\n    ///\n    /// Example:\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .connect) {data, ack in\n    ///     ...\n    /// }\n    /// ```\n    ///\n    /// - parameter event: The event for this handler.\n    /// - parameter callback: The callback that will execute when this event is received.\n    /// - returns: A unique id for the handler that can be used to remove it.\n    @discardableResult\n    open func on(clientEvent event: SocketClientEvent, callback: @escaping NormalCallback) -> UUID {\n        return on(event.rawValue, callback: callback)\n    }\n\n    /// Adds a single-use handler for a client event.\n    ///\n    /// - parameter clientEvent: The event for this handler.\n    /// - parameter callback: The callback that will execute when this event is received.\n    /// - returns: A unique id for the handler that can be used to remove it.\n    @discardableResult\n    open func once(clientEvent event: SocketClientEvent, callback: @escaping NormalCallback) -> UUID {\n        return once(event.rawValue, callback: callback)\n    }\n\n    /// Adds a single-use handler for an event.\n    ///\n    /// - parameter event: The event name for this handler.\n    /// - parameter callback: The callback that will execute when this event is received.\n    /// - returns: A unique id for the handler that can be used to remove it.\n    @discardableResult\n    open func once(_ event: String, callback: @escaping NormalCallback) -> UUID {\n        DefaultSocketLogger.Logger.log(\"Adding once handler for event: \\(event)\", type: logType)\n\n        let id = UUID()\n\n        let handler = SocketEventHandler(event: event, id: id) {[weak self] data, ack in\n            guard let this = self else { return }\n            this.off(id: id)\n            callback(data, ack)\n        }\n\n        handlers.append(handler)\n\n        return handler.id\n    }\n\n    /// Adds a handler that will be called on every event.\n    ///\n    /// - parameter handler: The callback that will execute whenever an event is received.\n    open func onAny(_ handler: @escaping (SocketAnyEvent) -> ()) {\n        anyHandler = handler\n    }\n\n    /// Tries to reconnect to the server.\n    @available(*, unavailable, message: \"Call the manager's reconnect method\")\n    open func reconnect() { }\n\n    /// Removes all handlers.\n    ///\n    /// Can be used after disconnecting to break any potential remaining retain cycles.\n    open func removeAllHandlers() {\n        handlers.removeAll(keepingCapacity: false)\n    }\n\n    /// Puts the socket back into the connecting state.\n    /// Called when the manager detects a broken connection, or when a manual reconnect is triggered.\n    ///\n    /// - parameter reason: The reason this socket is reconnecting.\n    open func setReconnecting(reason: String) {\n        status = .connecting\n\n        handleClientEvent(.reconnect, data: [reason])\n    }\n\n    // Test properties\n\n    var testHandlers: [SocketEventHandler] {\n        return handlers\n    }\n\n    func setTestable() {\n        status = .connected\n    }\n\n    func setTestStatus(_ status: SocketIOStatus) {\n        self.status = status\n    }\n\n    func emitTest(event: String, _ data: Any...) {\n        emit([event] + data)\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Client/SocketIOClientConfiguration.swift",
    "content": "//\n//  SocketIOClientConfiguration.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 8/13/16.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n/// An array-like type that holds `SocketIOClientOption`s\npublic struct SocketIOClientConfiguration : ExpressibleByArrayLiteral, Collection, MutableCollection {\n    // MARK: Typealiases\n\n    /// Type of element stored.\n    public typealias Element = SocketIOClientOption\n\n    /// Index type.\n    public typealias Index = Array<SocketIOClientOption>.Index\n\n    /// Iterator type.\n    public typealias Iterator = Array<SocketIOClientOption>.Iterator\n\n    /// SubSequence type.\n    public typealias SubSequence =  Array<SocketIOClientOption>.SubSequence\n\n    // MARK: Properties\n\n    private var backingArray = [SocketIOClientOption]()\n\n    /// The start index of this collection.\n    public var startIndex: Index {\n        return backingArray.startIndex\n    }\n\n    /// The end index of this collection.\n    public var endIndex: Index {\n        return backingArray.endIndex\n    }\n\n    /// Whether this collection is empty.\n    public var isEmpty: Bool {\n        return backingArray.isEmpty\n    }\n\n    /// The number of elements stored in this collection.\n    public var count: Index.Stride {\n        return backingArray.count\n    }\n\n    /// The first element in this collection.\n    public var first: Element? {\n        return backingArray.first\n    }\n\n    public subscript(position: Index) -> Element {\n        get {\n            return backingArray[position]\n        }\n\n        set {\n            backingArray[position] = newValue\n        }\n    }\n\n    public subscript(bounds: Range<Index>) -> SubSequence {\n        get {\n            return backingArray[bounds]\n        }\n\n        set {\n            backingArray[bounds] = newValue\n        }\n    }\n\n    // MARK: Initializers\n\n    /// Creates a new `SocketIOClientConfiguration` from an array literal.\n    ///\n    /// - parameter arrayLiteral: The elements.\n    public init(arrayLiteral elements: Element...) {\n        backingArray = elements\n    }\n\n    // MARK: Methods\n\n    /// Creates an iterator for this collection.\n    ///\n    /// - returns: An iterator over this collection.\n    public func makeIterator() -> Iterator {\n        return backingArray.makeIterator()\n    }\n\n    /// - returns: The index after index.\n    public func index(after i: Index) -> Index {\n        return backingArray.index(after: i)\n    }\n\n    /// Special method that inserts `element` into the collection, replacing any other instances of `element`.\n    ///\n    /// - parameter element: The element to insert.\n    /// - parameter replacing: Whether to replace any occurrences of element to the new item. Default is `true`.\n    public mutating func insert(_ element: Element, replacing replace: Bool = true) {\n        for i in 0..<backingArray.count where backingArray[i] == element {\n            guard replace else { return }\n\n            backingArray[i] = element\n\n            return\n        }\n\n        backingArray.append(element)\n    }\n}\n\n/// Declares that a type can set configs from a `SocketIOClientConfiguration`.\npublic protocol ConfigSettable {\n    // MARK: Methods\n\n    /// Called when an `ConfigSettable` should set/update its configs from a given configuration.\n    ///\n    /// - parameter config: The `SocketIOClientConfiguration` that should be used to set/update configs.\n    mutating func setConfigs(_ config: SocketIOClientConfiguration)\n}\n"
  },
  {
    "path": "Source/SocketIO/Client/SocketIOClientOption.swift",
    "content": "//\n//  SocketIOClientOption .swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 10/17/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\nimport Starscream\n\n/// The socket.io version being used.\npublic enum SocketIOVersion: Int {\n    /// socket.io 2, engine.io 3\n    case two = 2\n\n    /// socket.io 3, engine.io 4\n    case three = 3\n}\n\nprotocol ClientOption : CustomStringConvertible, Equatable {\n    func getSocketIOOptionValue() -> Any\n}\n\n/// The options for a client.\npublic enum SocketIOClientOption : ClientOption {\n    /// If given, the WebSocket transport will attempt to use compression.\n    case compress\n\n    /// A dictionary of GET parameters that will be included in the connect url.\n    case connectParams([String: Any])\n\n    /// An array of cookies that will be sent during the initial connection.\n    case cookies([HTTPCookie])\n\n    /// Any extra HTTP headers that should be sent during the initial connection.\n    case extraHeaders([String: String])\n\n    /// If passed `true`, will cause the client to always create a new engine. Useful for debugging,\n    /// or when you want to be sure no state from previous engines is being carried over.\n    case forceNew(Bool)\n\n    /// If passed `true`, the only transport that will be used will be HTTP long-polling.\n    case forcePolling(Bool)\n\n    /// If passed `true`, the only transport that will be used will be WebSockets.\n    case forceWebsockets(Bool)\n\n    /// If passed `true`, the WebSocket stream will be configured with the enableSOCKSProxy `true`.\n    case enableSOCKSProxy(Bool)\n\n    /// The queue that all interaction with the client should occur on. This is the queue that event handlers are\n    /// called on.\n    ///\n    /// **This should be a serial queue! Concurrent queues are not supported and might cause crashes and races**.\n    case handleQueue(DispatchQueue)\n\n    /// If passed `true`, the client will log debug information. This should be turned off in production code.\n    case log(Bool)\n\n    /// Used to pass in a custom logger.\n    case logger(SocketLogger)\n\n    /// A custom path to socket.io. Only use this if the socket.io server is configured to look for this path.\n    case path(String)\n\n    /// If passed `false`, the client will not reconnect when it loses connection. Useful if you want full control\n    /// over when reconnects happen.\n    case reconnects(Bool)\n\n    /// The number of times to try and reconnect before giving up. Pass `-1` to [never give up](https://www.youtube.com/watch?v=dQw4w9WgXcQ).\n    case reconnectAttempts(Int)\n\n    /// The minimum number of seconds to wait before reconnect attempts.\n    case reconnectWait(Int)\n\n    /// The maximum number of seconds to wait before reconnect attempts.\n    case reconnectWaitMax(Int)\n\n    /// The randomization factor for calculating reconnect jitter.\n    case randomizationFactor(Double)\n\n    /// Set `true` if your server is using secure transports.\n    case secure(Bool)\n\n    /// Allows you to set which certs are valid. Useful for SSL pinning.\n    case security(CertificatePinning)\n\n    /// If you're using a self-signed set. Only use for development.\n    case selfSigned(Bool)\n\n    /// Sets an NSURLSessionDelegate for the underlying engine. Useful if you need to handle self-signed certs.\n    case sessionDelegate(URLSessionDelegate)\n\n    /// The version of socket.io being used. This should match the server version. Default is 3.\n    case version(SocketIOVersion)\n\n    // MARK: Properties\n\n    /// The description of this option.\n    public var description: String {\n        let description: String\n\n        switch self {\n        case .compress:\n            description = \"compress\"\n        case .connectParams:\n            description = \"connectParams\"\n        case .cookies:\n            description = \"cookies\"\n        case .extraHeaders:\n            description = \"extraHeaders\"\n        case .forceNew:\n            description = \"forceNew\"\n        case .forcePolling:\n            description = \"forcePolling\"\n        case .forceWebsockets:\n            description = \"forceWebsockets\"\n        case .handleQueue:\n            description = \"handleQueue\"\n        case .log:\n            description = \"log\"\n        case .logger:\n            description = \"logger\"\n        case .path:\n            description = \"path\"\n        case .reconnects:\n            description = \"reconnects\"\n        case .reconnectAttempts:\n            description = \"reconnectAttempts\"\n        case .reconnectWait:\n            description = \"reconnectWait\"\n        case .reconnectWaitMax:\n            description = \"reconnectWaitMax\"\n        case .randomizationFactor:\n            description = \"randomizationFactor\"\n        case .secure:\n            description = \"secure\"\n        case .selfSigned:\n            description = \"selfSigned\"\n        case .security:\n            description = \"security\"\n        case .sessionDelegate:\n            description = \"sessionDelegate\"\n        case .enableSOCKSProxy:\n            description = \"enableSOCKSProxy\"\n        case .version:\n            description = \"version\"\n        }\n\n        return description\n    }\n\n    func getSocketIOOptionValue() -> Any {\n        let value: Any\n\n        switch self {\n        case .compress:\n            value = true\n        case let .connectParams(params):\n            value = params\n        case let .cookies(cookies):\n            value = cookies\n        case let .extraHeaders(headers):\n            value = headers\n        case let .forceNew(force):\n            value = force\n        case let .forcePolling(force):\n            value = force\n        case let .forceWebsockets(force):\n            value = force\n        case let .handleQueue(queue):\n            value = queue\n        case let .log(log):\n            value = log\n        case let .logger(logger):\n            value = logger\n        case let .path(path):\n            value = path\n        case let .reconnects(reconnects):\n            value = reconnects\n        case let .reconnectAttempts(attempts):\n            value = attempts\n        case let .reconnectWait(wait):\n            value = wait\n        case let .reconnectWaitMax(wait):\n            value = wait\n        case let .randomizationFactor(factor):\n            value = factor\n        case let .secure(secure):\n            value = secure\n        case let .security(security):\n            value = security\n        case let .selfSigned(signed):\n            value = signed\n        case let .sessionDelegate(delegate):\n            value = delegate\n        case let .enableSOCKSProxy(enable):\n            value = enable\n        case let.version(versionNum):\n            value = versionNum\n        }\n\n        return value\n    }\n\n    // MARK: Operators\n\n    /// Compares whether two options are the same.\n    ///\n    /// - parameter lhs: Left operand to compare.\n    /// - parameter rhs: Right operand to compare.\n    /// - returns: `true` if the two are the same option.\n    public static func ==(lhs: SocketIOClientOption, rhs: SocketIOClientOption) -> Bool {\n        return lhs.description == rhs.description\n    }\n\n}\n"
  },
  {
    "path": "Source/SocketIO/Client/SocketIOClientSpec.swift",
    "content": "//\n//  SocketIOClientSpec.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 1/3/16.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Dispatch\nimport Foundation\n\n/// Defines the interface for a SocketIOClient.\npublic protocol SocketIOClientSpec : AnyObject {\n    // MARK: Properties\n\n    /// A handler that will be called on any event.\n    var anyHandler: ((SocketAnyEvent) -> ())? { get }\n\n    /// The array of handlers for this socket.\n    var handlers: [SocketEventHandler] { get }\n\n    /// The manager for this socket.\n    var manager: SocketManagerSpec? { get }\n\n    /// The namespace that this socket is currently connected to.\n    ///\n    /// **Must** start with a `/`.\n    var nsp: String { get }\n\n    /// A view into this socket where emits do not check for binary data.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// socket.rawEmitView.emit(\"myEvent\", myObject)\n    /// ```\n    ///\n    /// **NOTE**: It is not safe to hold on to this view beyond the life of the socket.\n    var rawEmitView: SocketRawView { get }\n\n    /// The id of this socket.io connect. This is different from the sid of the engine.io connection.\n    var sid: String? { get }\n\n    /// The status of this client.\n    var status: SocketIOStatus { get }\n\n    // MARK: Methods\n\n    /// Connect to the server. The same as calling `connect(timeoutAfter:withHandler:)` with a timeout of 0.\n    ///\n    /// Only call after adding your event listeners, unless you know what you're doing.\n    ///\n    /// - parameter payload: An optional payload sent on connect\n    func connect(withPayload payload: [String: Any]?)\n\n    /// Connect to the server. If we aren't connected after `timeoutAfter` seconds, then `withHandler` is called.\n    ///\n    /// Only call after adding your event listeners, unless you know what you're doing.\n    ///\n    /// - parameter withPayload: An optional payload sent on connect\n    /// - parameter timeoutAfter: The number of seconds after which if we are not connected we assume the connection\n    ///                           has failed. Pass 0 to never timeout.\n    /// - parameter handler: The handler to call when the client fails to connect.\n    func connect(withPayload payload: [String: Any]?, timeoutAfter: Double, withHandler handler: (() -> ())?)\n\n    /// Called when the client connects to a namespace. If the client was created with a namespace upfront,\n    /// then this is only called when the client connects to that namespace.\n    ///\n    /// - parameter toNamespace: The namespace that was connected to.\n    func didConnect(toNamespace namespace: String, payload: [String: Any]?)\n\n    /// Called when the client has disconnected from socket.io.\n    ///\n    /// - parameter reason: The reason for the disconnection.\n    func didDisconnect(reason: String)\n\n    /// Called when the client encounters an error.\n    ///\n    /// - parameter reason: The reason for the disconnection.\n    func didError(reason: String)\n\n    /// Disconnects the socket.\n    func disconnect()\n\n    /// Send an event to the server, with optional data items and optional write completion handler.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[eventName, items, theError]`\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. May be left out.\n    /// - parameter completion: Callback called on transport write completion.\n    func emit(_ event: String, _ items: SocketData..., completion: (() -> ())?)\n    \n    /// Send an event to the server, with optional data items and optional write completion handler.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[eventName, items, theError]`\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. May be left out.\n    /// - parameter completion: Callback called on transport write completion.\n    func emit(_ event: String, with items: [SocketData], completion: (() -> ())?)\n\n    /// Call when you wish to tell the server that you've received the event for `ack`.\n    ///\n    /// - parameter ack: The ack number.\n    /// - parameter with: The data for this ack.\n    func emitAck(_ ack: Int, with items: [Any])\n\n    /// Sends a message to the server, requesting an ack.\n    ///\n    /// **NOTE**: It is up to the server send an ack back, just calling this method does not mean the server will ack.\n    /// Check that your server's api will ack the event being sent.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[eventName, items, theError]`\n    ///\n    /// Example:\n    ///\n    /// ```swift\n    /// socket.emitWithAck(\"myEvent\", 1).timingOut(after: 1) {data in\n    ///     ...\n    /// }\n    /// ```\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. May be left out.\n    /// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent.\n    func emitWithAck(_ event: String, _ items: SocketData...) -> OnAckCallback\n    \n    /// Sends a message to the server, requesting an ack.\n    ///\n    /// **NOTE**: It is up to the server send an ack back, just calling this method does not mean the server will ack.\n    /// Check that your server's api will ack the event being sent.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[eventName, items, theError]`\n    ///\n    /// Example:\n    ///\n    /// ```swift\n    /// socket.emitWithAck(\"myEvent\", 1).timingOut(after: 1) {data in\n    ///     ...\n    /// }\n    /// ```\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. May be left out.\n    /// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent.\n    func emitWithAck(_ event: String, with items: [SocketData]) -> OnAckCallback\n\n    /// Called when socket.io has acked one of our emits. Causes the corresponding ack callback to be called.\n    ///\n    /// - parameter ack: The number for this ack.\n    /// - parameter data: The data sent back with this ack.\n    func handleAck(_ ack: Int, data: [Any])\n\n    /// Called on socket.io specific events.\n    ///\n    /// - parameter event: The `SocketClientEvent`.\n    /// - parameter data: The data for this event.\n    func handleClientEvent(_ event: SocketClientEvent, data: [Any])\n\n    /// Called when we get an event from socket.io.\n    ///\n    /// - parameter event: The name of the event.\n    /// - parameter data: The data that was sent with this event.\n    /// - parameter isInternalMessage: Whether this event was sent internally. If `true` it is always sent to handlers.\n    /// - parameter ack: If > 0 then this event expects to get an ack back from the client.\n    func handleEvent(_ event: String, data: [Any], isInternalMessage: Bool, withAck ack: Int)\n\n    /// Causes a client to handle a socket.io packet. The namespace for the packet must match the namespace of the\n    /// socket.\n    ///\n    /// - parameter packet: The packet to handle.\n    func handlePacket(_ packet: SocketPacket)\n\n    /// Call when you wish to leave a namespace and disconnect this socket.\n    func leaveNamespace()\n\n    /// Joins `nsp`. You shouldn't need to call this directly, instead call `connect`.\n    ///\n    /// - Parameter withPayload: The payload to connect when joining this namespace\n    func joinNamespace(withPayload payload: [String: Any]?)\n\n    /// Removes handler(s) for a client event.\n    ///\n    /// If you wish to remove a client event handler, call the `off(id:)` with the UUID received from its `on` call.\n    ///\n    /// - parameter clientEvent: The event to remove handlers for.\n    func off(clientEvent event: SocketClientEvent)\n\n    /// Removes handler(s) based on an event name.\n    ///\n    /// If you wish to remove a specific event, call the `off(id:)` with the UUID received from its `on` call.\n    ///\n    /// - parameter event: The event to remove handlers for.\n    func off(_ event: String)\n\n    /// Removes a handler with the specified UUID gotten from an `on` or `once`\n    ///\n    /// If you want to remove all events for an event, call the off `off(_:)` method with the event name.\n    ///\n    /// - parameter id: The UUID of the handler you wish to remove.\n    func off(id: UUID)\n\n    /// Adds a handler for an event.\n    ///\n    /// - parameter event: The event name for this handler.\n    /// - parameter callback: The callback that will execute when this event is received.\n    /// - returns: A unique id for the handler that can be used to remove it.\n    func on(_ event: String, callback: @escaping NormalCallback) -> UUID\n\n    /// Adds a handler for a client event.\n    ///\n    /// Example:\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .connect) {data, ack in\n    ///     ...\n    /// }\n    /// ```\n    ///\n    /// - parameter event: The event for this handler.\n    /// - parameter callback: The callback that will execute when this event is received.\n    /// - returns: A unique id for the handler that can be used to remove it.\n    func on(clientEvent event: SocketClientEvent, callback: @escaping NormalCallback) -> UUID\n\n    /// Adds a single-use handler for a client event.\n    ///\n    /// - parameter clientEvent: The event for this handler.\n    /// - parameter callback: The callback that will execute when this event is received.\n    /// - returns: A unique id for the handler that can be used to remove it.\n    func once(clientEvent event: SocketClientEvent, callback: @escaping NormalCallback) -> UUID\n\n    /// Adds a single-use handler for an event.\n    ///\n    /// - parameter event: The event name for this handler.\n    /// - parameter callback: The callback that will execute when this event is received.\n    /// - returns: A unique id for the handler that can be used to remove it.\n    func once(_ event: String, callback: @escaping NormalCallback) -> UUID\n\n    /// Adds a handler that will be called on every event.\n    ///\n    /// - parameter handler: The callback that will execute whenever an event is received.\n    func onAny(_ handler: @escaping (SocketAnyEvent) -> ())\n\n    /// Removes all handlers.\n    ///\n    /// Can be used after disconnecting to break any potential remaining retain cycles.\n    func removeAllHandlers()\n\n    /// Puts the socket back into the connecting state.\n    /// Called when the manager detects a broken connection, or when a manual reconnect is triggered.\n    ///\n    /// parameter reason: The reason this socket is going reconnecting.\n    func setReconnecting(reason: String)\n}\n\npublic extension SocketIOClientSpec {\n    /// Default implementation.\n    func didError(reason: String) {\n        DefaultSocketLogger.Logger.error(\"\\(reason)\", type: \"SocketIOClient\")\n\n        handleClientEvent(.error, data: [reason])\n    }\n}\n\n/// The set of events that are generated by the client.\npublic enum SocketClientEvent : String {\n    // MARK: Cases\n\n    /// Emitted when the client connects. This is also called on a successful reconnection. A connect event gets one\n    /// data item: the namespace that was connected to.\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .connect) {data, ack in\n    ///     guard let nsp = data[0] as? String else { return }\n    ///     // Some logic using the nsp\n    /// }\n    /// ```\n    case connect\n\n    /// Emitted when the socket has disconnected and will not attempt to try to reconnect.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .disconnect) {data, ack in\n    ///     // Some cleanup logic\n    /// }\n    /// ```\n    case disconnect\n\n    /// Emitted when an error occurs.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .error) {data, ack in\n    ///     // Some logging\n    /// }\n    /// ```\n    case error\n\n    /// Emitted whenever the engine sends a ping.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .ping) {_, _ in\n    ///   // Maybe keep track of latency?\n    /// }\n    /// ```\n    case ping\n\n    /// Emitted whenever the engine gets a pong.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .pong) {_, _ in\n    ///   // Maybe keep track of latency?\n    /// }\n    /// ```\n    case pong\n\n    /// Emitted when the client begins the reconnection process.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .reconnect) {data, ack in\n    ///     // Some reconnect event logic\n    /// }\n    /// ```\n    case reconnect\n\n    /// Emitted each time the client tries to reconnect to the server.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .reconnectAttempt) {data, ack in\n    ///     // Some reconnect attempt logging\n    /// }\n    /// ```\n    case reconnectAttempt\n\n    /// Emitted every time there is a change in the client's status.\n    ///\n    /// The payload for data is [SocketIOClientStatus, Int]. Where the second item is the raw value. Use the second one\n    /// if you are working in Objective-C.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .statusChange) {data, ack in\n    ///     // Some status changing logging\n    /// }\n    /// ```\n    case statusChange\n\n    /// Emitted when when upgrading the http connection to a websocket connection.\n    ///\n    /// Usage:\n    ///\n    /// ```swift\n    /// socket.on(clientEvent: .websocketUpgrade) {data, ack in\n    ///     let headers = (data as [Any])[0]\n    ///     // Some header logic\n    /// }\n    /// ```\n    case websocketUpgrade\n}\n"
  },
  {
    "path": "Source/SocketIO/Client/SocketIOStatus.swift",
    "content": "//\n//  SocketIOStatus.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 8/14/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\n\n/// Represents state of a manager or client.\n@objc\npublic enum SocketIOStatus : Int, CustomStringConvertible {\n    // MARK: Cases\n\n    /// The client/manager has never been connected. Or the client has been reset.\n    case notConnected\n\n    /// The client/manager was once connected, but not anymore.\n    case disconnected\n\n    /// The client/manager is in the process of connecting.\n    case connecting\n\n    /// The client/manager is currently connected.\n    case connected\n\n    // MARK: Properties\n\n    /// - returns: True if this client/manager is connected/connecting to a server.\n    public var active: Bool {\n        return self == .connected || self == .connecting\n    }\n\n    public var description: String {\n        switch self {\n        case .connected:    return \"connected\"\n        case .connecting:   return \"connecting\"\n        case .disconnected: return \"disconnected\"\n        case .notConnected: return \"notConnected\"\n        }\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Client/SocketRawView.swift",
    "content": "//\n//  SocketRawView.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 3/30/18.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\n\n/// Class that gives a backwards compatible way to cause an emit not to recursively check for Data objects.\n///\n/// Usage:\n///\n/// ```swift\n/// socket.rawEmitView.emit(\"myEvent\", myObject)\n/// ```\npublic final class SocketRawView : NSObject {\n    private unowned let socket: SocketIOClient\n\n    init(socket: SocketIOClient) {\n        self.socket = socket\n    }\n\n    /// Send an event to the server, with optional data items.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[eventName, items, theError]`\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. May be left out.\n    public func emit(_ event: String, _ items: SocketData...) {\n        do {\n            try emit(event, with: items.map({ try $0.socketRepresentation() }))\n        } catch {\n            DefaultSocketLogger.Logger.error(\"Error creating socketRepresentation for emit: \\(event), \\(items)\",\n                                             type: \"SocketIOClient\")\n\n            socket.handleClientEvent(.error, data: [event, items, error])\n        }\n    }\n\n    /// Same as emit, but meant for Objective-C\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. Send an empty array to send no data.\n    @objc\n    public func emit(_ event: String, with items: [Any]) {\n        socket.emit([event] + items, binary: false)\n    }\n\n    /// Sends a message to the server, requesting an ack.\n    ///\n    /// **NOTE**: It is up to the server send an ack back, just calling this method does not mean the server will ack.\n    /// Check that your server's api will ack the event being sent.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[eventName, items, theError]`\n    ///\n    /// Example:\n    ///\n    /// ```swift\n    /// socket.emitWithAck(\"myEvent\", 1).timingOut(after: 1) {data in\n    ///     ...\n    /// }\n    /// ```\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. May be left out.\n    /// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent.\n    public func emitWithAck(_ event: String, _ items: SocketData...) -> OnAckCallback {\n        do {\n            return emitWithAck(event, with: try items.map({ try $0.socketRepresentation() }))\n        } catch {\n            DefaultSocketLogger.Logger.error(\"Error creating socketRepresentation for emit: \\(event), \\(items)\",\n                                             type: \"SocketIOClient\")\n\n            socket.handleClientEvent(.error, data: [event, items, error])\n\n            return OnAckCallback(ackNumber: -1, items: [], socket: socket)\n        }\n    }\n\n    /// Same as emitWithAck, but for Objective-C\n    ///\n    /// **NOTE**: It is up to the server send an ack back, just calling this method does not mean the server will ack.\n    /// Check that your server's api will ack the event being sent.\n    ///\n    /// Example:\n    ///\n    /// ```swift\n    /// socket.emitWithAck(\"myEvent\", with: [1]).timingOut(after: 1) {data in\n    ///     ...\n    /// }\n    /// ```\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The items to send with this event. Use `[]` to send nothing.\n    /// - returns: An `OnAckCallback`. You must call the `timingOut(after:)` method before the event will be sent.\n    @objc\n    public func emitWithAck(_ event: String, with items: [Any]) -> OnAckCallback {\n        return socket.createOnAck([event] + items, binary: false)\n    }\n}\n\n/// Class that gives a backwards compatible way to cause an emit not to recursively check for Data objects.\n///\n/// Usage:\n///\n/// ```swift\n/// ack.rawEmitView.with(myObject)\n/// ```\npublic final class SocketRawAckView : NSObject {\n    private unowned let socket: SocketIOClient\n    private let ackNum: Int\n\n    init(socket: SocketIOClient, ackNum: Int) {\n        self.socket = socket\n        self.ackNum = ackNum\n    }\n\n    /// Call to ack receiving this event.\n    ///\n    /// If an error occurs trying to transform `items` into their socket representation, a `SocketClientEvent.error`\n    /// will be emitted. The structure of the error data is `[ackNum, items, theError]`\n    ///\n    /// - parameter items: A variable number of items to send when acking.\n    public func with(_ items: SocketData...) {\n        guard ackNum != -1 else { return }\n\n        do {\n            socket.emit(try items.map({ try $0.socketRepresentation() }), ack: ackNum, binary: false, isAck: true)\n        } catch {\n            socket.handleClientEvent(.error, data: [ackNum, items, error])\n        }\n    }\n\n    /// Call to ack receiving this event.\n    ///\n    /// - parameter items: An array of items to send when acking. Use `[]` to send nothing.\n    @objc\n    public func with(_ items: [Any]) {\n        guard ackNum != -1 else { return }\n\n        socket.emit(items, ack: ackNum, binary: false, isAck: true)\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Engine/SocketEngine.swift",
    "content": "//\n//  SocketEngine.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 3/3/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Dispatch\nimport Foundation\nimport Starscream\n\n/// The class that handles the engine.io protocol and transports.\n/// See `SocketEnginePollable` and `SocketEngineWebsocket` for transport specific methods.\nopen class SocketEngine:\n        NSObject, WebSocketDelegate, URLSessionDelegate, SocketEnginePollable, SocketEngineWebsocket, ConfigSettable {\n    // MARK: Properties\n\n    private static let logType = \"SocketEngine\"\n\n    /// The queue that all engine actions take place on.\n    public let engineQueue = DispatchQueue(label: \"com.socketio.engineHandleQueue\")\n\n    /// The connect parameters sent during a connect.\n    public var connectParams: [String: Any]? {\n        didSet {\n            (urlPolling, urlWebSocket) = createURLs()\n        }\n    }\n\n    /// A dictionary of extra http headers that will be set during connection.\n    public var extraHeaders: [String: String]?\n\n    /// A queue of engine.io messages waiting for POSTing\n    ///\n    /// **You should not touch this directly**\n    public var postWait = [Post]()\n\n    /// `true` if there is an outstanding poll. Trying to poll before the first is done will cause socket.io to\n    /// disconnect us.\n    ///\n    /// **Do not touch this directly**\n    public var waitingForPoll = false\n\n    /// `true` if there is an outstanding post. Trying to post before the first is done will cause socket.io to\n    /// disconnect us.\n    ///\n    /// **Do not touch this directly**\n    public var waitingForPost = false\n\n    /// `true` if this engine is closed.\n    public private(set) var closed = false\n\n    /// If `true` the engine will attempt to use WebSocket compression.\n    public private(set) var compress = false\n\n    /// `true` if this engine is connected. Connected means that the initial poll connect has succeeded.\n    public private(set) var connected = false\n\n    /// An array of HTTPCookies that are sent during the connection.\n    public private(set) var cookies: [HTTPCookie]?\n\n    /// When `true`, the engine is in the process of switching to WebSockets.\n    ///\n    /// **Do not touch this directly**\n    public private(set) var fastUpgrade = false\n\n    /// When `true`, the engine will only use HTTP long-polling as a transport.\n    public private(set) var forcePolling = false\n\n    /// When `true`, the engine will only use WebSockets as a transport.\n    public private(set) var forceWebsockets = false\n\n    /// `true` If engine's session has been invalidated.\n    public private(set) var invalidated = false\n\n    /// If `true`, the engine is currently in HTTP long-polling mode.\n    public private(set) var polling = true\n\n    /// If `true`, the engine is currently seeing whether it can upgrade to WebSockets.\n    public private(set) var probing = false\n\n    /// The URLSession that will be used for polling.\n    public private(set) var session: URLSession?\n\n    /// The session id for this engine.\n    public private(set) var sid = \"\"\n\n    /// The path to engine.io.\n    public private(set) var socketPath = \"/engine.io/\"\n\n    /// The url for polling.\n    public private(set) var urlPolling = URL(string: \"http://localhost/\")!\n\n    /// The url for WebSockets.\n    public private(set) var urlWebSocket = URL(string: \"http://localhost/\")!\n\n    /// The version of engine.io being used. Default is three.\n    public private(set) var version: SocketIOVersion = .three\n\n    /// If `true`, then the engine is currently in WebSockets mode.\n    @available(*, deprecated, message: \"No longer needed, if we're not polling, then we must be doing websockets\")\n    public private(set) var websocket = false\n\n    /// When `true`, the WebSocket `stream` will be configured with the enableSOCKSProxy `true`.\n    public private(set) var enableSOCKSProxy = false\n\n    /// The WebSocket for this engine.\n    public private(set) var ws: WebSocket?\n\n    /// Whether or not the WebSocket is currently connected.\n    public private(set) var wsConnected = false\n\n    /// The client for this engine.\n    public weak var client: SocketEngineClient?\n\n    private weak var sessionDelegate: URLSessionDelegate?\n\n    private let url: URL\n\n    private var lastCommunication: Date?\n    private var pingInterval: Int?\n    private var pingTimeout = 0 {\n        didSet {\n            pongsMissedMax = Int(pingTimeout / (pingInterval ?? 25000))\n        }\n    }\n\n    private var pongsMissed = 0\n    private var pongsMissedMax = 0\n    private var probeWait = ProbeWaitQueue()\n    private var secure = false\n    private var certPinner: CertificatePinning?\n    private var selfSigned = false\n\n    // MARK: Initializers\n\n    /// Creates a new engine.\n    ///\n    /// - parameter client: The client for this engine.\n    /// - parameter url: The url for this engine.\n    /// - parameter config: An array of configuration options for this engine.\n    public init(client: SocketEngineClient, url: URL, config: SocketIOClientConfiguration) {\n        self.client = client\n        self.url = url\n\n        super.init()\n\n        setConfigs(config)\n\n        sessionDelegate = sessionDelegate ?? self\n\n        (urlPolling, urlWebSocket) = createURLs()\n    }\n\n    /// Creates a new engine.\n    ///\n    /// - parameter client: The client for this engine.\n    /// - parameter url: The url for this engine.\n    /// - parameter options: The options for this engine.\n    public required convenience init(client: SocketEngineClient, url: URL, options: [String: Any]?) {\n        self.init(client: client, url: url, config: options?.toSocketConfiguration() ?? [])\n    }\n\n    /// :nodoc:\n    deinit {\n        DefaultSocketLogger.Logger.log(\"Engine is being released\", type: SocketEngine.logType)\n        closed = true\n        stopPolling()\n    }\n\n    // MARK: Methods\n\n    private func checkAndHandleEngineError(_ msg: String) {\n        do {\n            let dict = try msg.toDictionary()\n            guard let error = dict[\"message\"] as? String else { return }\n\n            /*\n             0: Unknown transport\n             1: Unknown sid\n             2: Bad handshake request\n             3: Bad request\n             */\n            didError(reason: error)\n        } catch {\n            client?.engineDidError(reason: \"Got unknown error from server \\(msg)\")\n        }\n    }\n\n    private func handleBase64(message: String) {\n        let offset = version.rawValue >= 3 ? 1 : 2\n        // binary in base64 string\n        let noPrefix = String(message[message.index(message.startIndex, offsetBy: offset)..<message.endIndex])\n\n        if let data = Data(base64Encoded: noPrefix, options: .ignoreUnknownCharacters) {\n            client?.parseEngineBinaryData(data)\n        }\n    }\n\n    private func closeOutEngine(reason: String) {\n        sid = \"\"\n        closed = true\n        invalidated = true\n        connected = false\n\n        ws?.disconnect()\n        stopPolling()\n        client?.engineDidClose(reason: reason)\n    }\n\n    /// Starts the connection to the server.\n    open func connect() {\n        engineQueue.async {\n            self._connect()\n        }\n    }\n\n    private func _connect() {\n        if connected {\n            DefaultSocketLogger.Logger.error(\"Engine tried opening while connected. Assuming this was a reconnect\",\n                                             type: SocketEngine.logType)\n            _disconnect(reason: \"reconnect\")\n        }\n\n        DefaultSocketLogger.Logger.log(\"Starting engine. Server: \\(url)\", type: SocketEngine.logType)\n        DefaultSocketLogger.Logger.log(\"Handshaking\", type: SocketEngine.logType)\n\n        resetEngine()\n\n        if forceWebsockets {\n            polling = false\n            createWebSocketAndConnect()\n            return\n        }\n\n        var reqPolling = URLRequest(url: urlPolling, cachePolicy: .reloadIgnoringLocalCacheData, timeoutInterval: 60.0)\n\n        addHeaders(to: &reqPolling)\n        doLongPoll(for: reqPolling)\n    }\n\n    private func createURLs() -> (URL, URL) {\n        if client == nil {\n            return (URL(string: \"http://localhost/\")!, URL(string: \"http://localhost/\")!)\n        }\n\n        var urlPolling = URLComponents(string: url.absoluteString)!\n        var urlWebSocket = URLComponents(string: url.absoluteString)!\n        var queryString = \"\"\n\n        urlWebSocket.path = socketPath\n        urlPolling.path = socketPath\n\n        if secure {\n            urlPolling.scheme = \"https\"\n            urlWebSocket.scheme = \"wss\"\n        } else {\n            urlPolling.scheme = \"http\"\n            urlWebSocket.scheme = \"ws\"\n        }\n\n        if let connectParams = self.connectParams {\n            for (key, value) in connectParams {\n                let keyEsc = key.urlEncode()!\n                let valueEsc = \"\\(value)\".urlEncode()!\n\n                queryString += \"&\\(keyEsc)=\\(valueEsc)\"\n            }\n        }\n\n        urlWebSocket.percentEncodedQuery = \"transport=websocket\" + queryString\n        urlPolling.percentEncodedQuery = \"transport=polling&b64=1\" + queryString\n\n        if !urlWebSocket.percentEncodedQuery!.contains(\"EIO\") {\n            urlWebSocket.percentEncodedQuery = urlWebSocket.percentEncodedQuery! + engineIOParam\n        }\n\n        if !urlPolling.percentEncodedQuery!.contains(\"EIO\") {\n            urlPolling.percentEncodedQuery = urlPolling.percentEncodedQuery! + engineIOParam\n        }\n\n        return (urlPolling.url!, urlWebSocket.url!)\n    }\n\n    private func createWebSocketAndConnect() {\n        var req = URLRequest(url: urlWebSocketWithSid)\n\n        addHeaders(\n            to: &req,\n            includingCookies: session?.configuration.httpCookieStorage?.cookies(for: urlPollingWithSid)\n        )\n\n        ws = WebSocket(request: req, certPinner: certPinner, compressionHandler: compress ? WSCompression() : nil)\n        ws?.callbackQueue = engineQueue\n        ws?.delegate = self\n\n        ws?.connect()\n    }\n\n    /// Called when an error happens during execution. Causes a disconnection.\n    open func didError(reason: String) {\n        DefaultSocketLogger.Logger.error(\"\\(reason)\", type: SocketEngine.logType)\n        client?.engineDidError(reason: reason)\n        disconnect(reason: reason)\n    }\n\n    /// Disconnects from the server.\n    ///\n    /// - parameter reason: The reason for the disconnection. This is communicated up to the client.\n    open func disconnect(reason: String) {\n        engineQueue.async {\n            self._disconnect(reason: reason)\n        }\n    }\n\n    private func _disconnect(reason: String) {\n        guard connected && !closed else { return closeOutEngine(reason: reason) }\n\n        DefaultSocketLogger.Logger.log(\"Engine is being closed.\", type: SocketEngine.logType)\n\n        if polling {\n            disconnectPolling(reason: reason)\n        } else {\n            sendWebSocketMessage(\"\", withType: .close, withData: [], completion: nil)\n            closeOutEngine(reason: reason)\n        }\n    }\n\n    // We need to take special care when we're polling that we send it ASAP\n    // Also make sure we're on the emitQueue since we're touching postWait\n    private func disconnectPolling(reason: String) {\n        postWait.append((String(SocketEnginePacketType.close.rawValue), {}))\n\n        doRequest(for: createRequestForPostWithPostWait()) {_, _, _ in }\n        closeOutEngine(reason: reason)\n    }\n\n    /// Called to switch from HTTP long-polling to WebSockets. After calling this method the engine will be in\n    /// WebSocket mode.\n    ///\n    /// **You shouldn't call this directly**\n    open func doFastUpgrade() {\n        if waitingForPoll {\n            DefaultSocketLogger.Logger.error(\"Outstanding poll when switched to WebSockets,\" +\n                \"we'll probably disconnect soon. You should report this.\", type: SocketEngine.logType)\n        }\n\n        DefaultSocketLogger.Logger.log(\"Switching to WebSockets\", type: SocketEngine.logType)\n\n        sendWebSocketMessage(\"\", withType: .upgrade, withData: [], completion: nil)\n        polling = false\n        fastUpgrade = false\n        probing = false\n        flushProbeWait()\n\n        // Need to flush postWait to socket since it connected successfully\n        // moved from flushProbeWait() since it is also called on connected failure, and we don't want to try and send\n        // packets through WebSockets when WebSockets has failed!\n        if !postWait.isEmpty {\n            flushWaitingForPostToWebSocket()\n        }\n    }\n\n    private func flushProbeWait() {\n        DefaultSocketLogger.Logger.log(\"Flushing probe wait\", type: SocketEngine.logType)\n\n        for waiter in probeWait {\n            write(waiter.msg, withType: waiter.type, withData: waiter.data, completion: waiter.completion)\n        }\n\n        probeWait.removeAll(keepingCapacity: false)\n    }\n\n    /// Causes any packets that were waiting for POSTing to be sent through the WebSocket. This happens because when\n    /// the engine is attempting to upgrade to WebSocket it does not do any POSTing.\n    ///\n    /// **You shouldn't call this directly**\n    open func flushWaitingForPostToWebSocket() {\n        guard let ws = self.ws else { return }\n\n        for msg in postWait {\n            ws.write(string: msg.msg, completion: msg.completion)\n        }\n\n        postWait.removeAll(keepingCapacity: false)\n    }\n\n    private func handleClose(_ reason: String) {\n        client?.engineDidClose(reason: reason)\n    }\n\n    private func handleMessage(_ message: String) {\n        client?.parseEngineMessage(message)\n    }\n\n    private func handleNOOP() {\n        doPoll()\n    }\n\n    private func handleOpen(openData: String) {\n        guard let json = try? openData.toDictionary() else {\n            didError(reason: \"Error parsing open packet\")\n\n            return\n        }\n\n        guard let sid = json[\"sid\"] as? String else {\n            didError(reason: \"Open packet contained no sid\")\n\n            return\n        }\n\n        let upgradeWs: Bool\n\n        self.sid = sid\n        connected = true\n        pongsMissed = 0\n\n        if let upgrades = json[\"upgrades\"] as? [String] {\n            upgradeWs = upgrades.contains(\"websocket\")\n        } else {\n            upgradeWs = false\n        }\n\n        if let pingInterval = json[\"pingInterval\"] as? Int, let pingTimeout = json[\"pingTimeout\"] as? Int {\n            self.pingInterval = pingInterval\n            self.pingTimeout = pingTimeout\n        }\n\n        if !forcePolling && !forceWebsockets && upgradeWs {\n            createWebSocketAndConnect()\n        }\n\n        if version.rawValue >= 3 {\n            checkPings()\n        } else {\n            sendPing()\n        }\n\n        if !forceWebsockets {\n            doPoll()\n        }\n\n        client?.engineDidOpen(reason: \"Connect\")\n    }\n\n    private func handlePong(with message: String) {\n        pongsMissed = 0\n\n        // We should upgrade\n        if message == \"3probe\" {\n            DefaultSocketLogger.Logger.log(\"Received probe response, should upgrade to WebSockets\",\n                                           type: SocketEngine.logType)\n\n            upgradeTransport()\n        }\n\n        client?.engineDidReceivePong()\n    }\n\n    private func handlePing(with message: String) {\n        if version.rawValue >= 3 {\n            write(\"\", withType: .pong, withData: [])\n        }\n\n        client?.engineDidReceivePing()\n    }\n\n    private func checkPings() {\n        let pingInterval = self.pingInterval ?? 25_000\n        let deadlineMs = Double(pingInterval + pingTimeout) / 1000\n        let timeoutDeadline = DispatchTime.now() + .milliseconds(pingInterval + pingTimeout)\n\n        engineQueue.asyncAfter(deadline: timeoutDeadline) {[weak self, id = self.sid] in\n            // Make sure not to ping old connections\n            guard let this = self, this.sid == id else { return }\n\n            if abs(this.lastCommunication?.timeIntervalSinceNow ?? deadlineMs) >= deadlineMs {\n                this.closeOutEngine(reason: \"Ping timeout\")\n            } else {\n                this.checkPings()\n            }\n        }\n    }\n\n    /// Parses raw binary received from engine.io.\n    ///\n    /// - parameter data: The data to parse.\n    open func parseEngineData(_ data: Data) {\n        DefaultSocketLogger.Logger.log(\"Got binary data: \\(data)\", type: SocketEngine.logType)\n\n        lastCommunication = Date()\n\n        client?.parseEngineBinaryData(version.rawValue >= 3 ? data : data.subdata(in: 1..<data.endIndex))\n    }\n\n    /// Parses a raw engine.io packet.\n    ///\n    /// - parameter message: The message to parse.\n    open func parseEngineMessage(_ message: String) {\n        lastCommunication = Date()\n\n        DefaultSocketLogger.Logger.log(\"Got message: \\(message)\", type: SocketEngine.logType)\n\n        if message.hasPrefix(version.rawValue >= 3 ? \"b\" : \"b4\") {\n            return handleBase64(message: message)\n        }\n\n        guard let type = SocketEnginePacketType(rawValue: message.first?.wholeNumberValue ?? -1) else {\n            checkAndHandleEngineError(message)\n\n            return\n        }\n\n        switch type {\n        case .message:\n            handleMessage(String(message.dropFirst()))\n        case .noop:\n            handleNOOP()\n        case .ping:\n            handlePing(with: message)\n        case .pong:\n            handlePong(with: message)\n        case .open:\n            handleOpen(openData: String(message.dropFirst()))\n        case .close:\n            handleClose(message)\n        default:\n            DefaultSocketLogger.Logger.log(\"Got unknown packet type\", type: SocketEngine.logType)\n        }\n    }\n\n    // Puts the engine back in its default state\n    private func resetEngine() {\n        let queue = OperationQueue()\n        queue.underlyingQueue = engineQueue\n\n        closed = false\n        connected = false\n        fastUpgrade = false\n        polling = true\n        probing = false\n        invalidated = false\n        session = Foundation.URLSession(configuration: .default, delegate: sessionDelegate, delegateQueue: queue)\n        sid = \"\"\n        waitingForPoll = false\n        waitingForPost = false\n    }\n\n    private func sendPing() {\n        guard connected, let pingInterval = pingInterval else {\n            return\n        }\n\n        // Server is not responding\n        if pongsMissed > pongsMissedMax {\n            closeOutEngine(reason: \"Ping timeout\")\n            return\n        }\n\n        pongsMissed += 1\n        write(\"\", withType: .ping, withData: [], completion: nil)\n\n        engineQueue.asyncAfter(deadline: .now() + .milliseconds(pingInterval)) {[weak self, id = self.sid] in\n            // Make sure not to ping old connections\n            guard let this = self, this.sid == id else {\n                return\n            }\n\n            this.sendPing()\n        }\n\n        client?.engineDidSendPing()\n    }\n\n    /// Called when the engine should set/update its configs from a given configuration.\n    ///\n    /// parameter config: The `SocketIOClientConfiguration` that should be used to set/update configs.\n    open func setConfigs(_ config: SocketIOClientConfiguration) {\n        for option in config {\n            switch option {\n            case let .connectParams(params):\n                connectParams = params\n            case let .cookies(cookies):\n                self.cookies = cookies\n            case let .extraHeaders(headers):\n                extraHeaders = headers\n            case let .sessionDelegate(delegate):\n                sessionDelegate = delegate\n            case let .forcePolling(force):\n                forcePolling = force\n            case let .forceWebsockets(force):\n                forceWebsockets = force\n            case let .path(path):\n                socketPath = path\n\n                if !socketPath.hasSuffix(\"/\") {\n                    socketPath += \"/\"\n                }\n            case let .secure(secure):\n                self.secure = secure\n            case let .selfSigned(selfSigned):\n                self.selfSigned = selfSigned\n            case let .security(pinner):\n                self.certPinner = pinner\n            case .compress:\n                self.compress = true\n            case .enableSOCKSProxy:\n                self.enableSOCKSProxy = true\n            case let .version(num):\n                version = num\n            default:\n                continue\n            }\n        }\n    }\n\n    // Moves from long-polling to websockets\n    private func upgradeTransport() {\n        if wsConnected {\n            DefaultSocketLogger.Logger.log(\"Upgrading transport to WebSockets\", type: SocketEngine.logType)\n\n            fastUpgrade = true\n            sendPollMessage(\"\", withType: .noop, withData: [], completion: nil)\n            // After this point, we should not send anymore polling messages\n        }\n    }\n\n    /// Writes a message to engine.io, independent of transport.\n    ///\n    /// - parameter msg: The message to send.\n    /// - parameter type: The type of this message.\n    /// - parameter data: Any data that this message has.\n    /// - parameter completion: Callback called on transport write completion.\n    open func write(_ msg: String, withType type: SocketEnginePacketType, withData data: [Data], completion: (() -> ())? = nil) {\n        engineQueue.async {\n            guard self.connected else {\n                completion?()\n                return\n            }\n\n            guard !self.probing else {\n                self.probeWait.append((msg, type, data, completion))\n\n                return\n            }\n\n            if self.polling {\n                DefaultSocketLogger.Logger.log(\"Writing poll: \\(msg) has data: \\(data.count != 0)\",\n                                               type: SocketEngine.logType)\n                self.sendPollMessage(msg, withType: type, withData: data, completion: completion)\n            } else {\n                DefaultSocketLogger.Logger.log(\"Writing ws: \\(msg) has data: \\(data.count != 0)\",\n                                               type: SocketEngine.logType)\n                self.sendWebSocketMessage(msg, withType: type, withData: data, completion: completion)\n            }\n        }\n    }\n\n    // WebSocket Methods\n\n    private func websocketDidConnect() {\n        if !forceWebsockets {\n            probing = true\n            probeWebSocket()\n        } else {\n            connected = true\n            probing = false\n            polling = false\n        }\n    }\n\n    private func websocketDidDisconnect(error: Error?) {\n        probing = false\n\n        if closed {\n            client?.engineDidClose(reason: \"Disconnect\")\n\n            return\n        }\n\n        guard !polling else {\n            flushProbeWait()\n\n            return\n        }\n\n        connected = false\n        polling = true\n\n        if let error = error as? WSError {\n            didError(reason: \"\\(error.message). code=\\(error.code), type=\\(error.type)\")\n        } else if let reason = error?.localizedDescription {\n            didError(reason: reason)\n        } else {\n            client?.engineDidClose(reason: \"Socket Disconnected\")\n        }\n    }\n\n    // Test Properties\n\n    func setConnected(_ value: Bool) {\n        connected = value\n    }\n}\n\nextension SocketEngine {\n    // MARK: URLSessionDelegate methods\n\n    /// Delegate called when the session becomes invalid.\n    public func URLSession(session: URLSession, didBecomeInvalidWithError error: NSError?) {\n        DefaultSocketLogger.Logger.error(\"Engine URLSession became invalid\", type: \"SocketEngine\")\n\n        didError(reason: \"Engine URLSession became invalid\")\n    }\n}\n\nenum EngineError: Error {\n    case canceled\n}\n\nextension SocketEngine {\n    /// Delegate method for WebSocketDelegate.\n    ///\n    /// - Parameters:\n    ///   - event: WS Event\n    ///   - _:\n    public func didReceive(event: WebSocketEvent, client _: WebSocket) {\n        switch event {\n        case let .connected(headers):\n            wsConnected = true\n            client?.engineDidWebsocketUpgrade(headers: headers)\n            websocketDidConnect()\n        case .cancelled:\n            wsConnected = false\n            websocketDidDisconnect(error: EngineError.canceled)\n        case let .disconnected(reason, code):\n            wsConnected = false\n            websocketDidDisconnect(error: nil)\n        case let .text(msg):\n            parseEngineMessage(msg)\n        case let .binary(data):\n            parseEngineData(data)\n        case _:\n            break\n        }\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Engine/SocketEngineClient.swift",
    "content": "//\n//  SocketEngineClient.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 3/19/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n//\n\nimport Foundation\n\n/// Declares that a type will be a delegate to an engine.\n@objc public protocol SocketEngineClient {\n    // MARK: Methods\n\n    /// Called when the engine errors.\n    ///\n    /// - parameter reason: The reason the engine errored.\n    func engineDidError(reason: String)\n\n    /// Called when the engine closes.\n    ///\n    /// - parameter reason: The reason that the engine closed.\n    func engineDidClose(reason: String)\n\n    /// Called when the engine opens.\n    ///\n    /// - parameter reason: The reason the engine opened.\n    func engineDidOpen(reason: String)\n\n    /// Called when the engine receives a ping message. Only called in socket.io >3.\n    func engineDidReceivePing()\n\n    /// Called when the engine receives a pong message. Only called in socket.io 2.\n    func engineDidReceivePong()\n\n    /// Called when the engine sends a ping to the server. Only called in socket.io 2.\n    func engineDidSendPing()\n\n    /// Called when the engine sends a pong to the server. Only called in socket.io >3.\n    func engineDidSendPong()\n\n    /// Called when the engine has a message that must be parsed.\n    ///\n    /// - parameter msg: The message that needs parsing.\n    func parseEngineMessage(_ msg: String)\n\n    /// Called when the engine receives binary data.\n    ///\n    /// - parameter data: The data the engine received.\n    func parseEngineBinaryData(_ data: Data)\n\n    /// Called when when upgrading the http connection to a websocket connection.\n    ///\n    /// - parameter headers: The http headers.\n    func engineDidWebsocketUpgrade(headers: [String: String])\n}\n"
  },
  {
    "path": "Source/SocketIO/Engine/SocketEnginePacketType.swift",
    "content": "//\n//  SocketEnginePacketType.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 10/7/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n//\n\nimport Foundation\n\n/// Represents the type of engine.io packet types.\n@objc public enum SocketEnginePacketType: Int {\n    /// Open message.\n    case open\n\n    /// Close message.\n    case close\n\n    /// Ping message.\n    case ping\n\n    /// Pong message.\n    case pong\n\n    /// Regular message.\n    case message\n\n    /// Upgrade message.\n    case upgrade\n\n    /// NOOP.\n    case noop\n}\n"
  },
  {
    "path": "Source/SocketIO/Engine/SocketEnginePollable.swift",
    "content": "//\n//  SocketEnginePollable.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 1/15/16.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\n\n/// Protocol that is used to implement socket.io polling support\npublic protocol SocketEnginePollable: SocketEngineSpec {\n    // MARK: Properties\n\n    /// `true` If engine's session has been invalidated.\n    var invalidated: Bool { get }\n\n    /// A queue of engine.io messages waiting for POSTing\n    ///\n    /// **You should not touch this directly**\n    var postWait: [Post] { get set }\n\n    /// The URLSession that will be used for polling.\n    var session: URLSession? { get }\n\n    /// `true` if there is an outstanding poll. Trying to poll before the first is done will cause socket.io to\n    /// disconnect us.\n    ///\n    /// **Do not touch this directly**\n    var waitingForPoll: Bool { get set }\n\n    /// `true` if there is an outstanding post. Trying to post before the first is done will cause socket.io to\n    /// disconnect us.\n    ///\n    /// **Do not touch this directly**\n    var waitingForPost: Bool { get set }\n\n    // MARK: Methods\n\n    /// Call to send a long-polling request.\n    ///\n    /// You shouldn't need to call this directly, the engine should automatically maintain a long-poll request.\n    func doPoll()\n\n    /// Sends an engine.io message through the polling transport.\n    ///\n    /// You shouldn't call this directly, instead call the `write` method on `SocketEngine`.\n    ///\n    /// - parameter message: The message to send.\n    /// - parameter withType: The type of message to send.\n    /// - parameter withData: The data associated with this message.\n    func sendPollMessage(_ message: String, withType type: SocketEnginePacketType, withData datas: [Data], completion: (() -> ())?)\n\n    /// Call to stop polling and invalidate the URLSession.\n    func stopPolling()\n}\n\n// Default polling methods\nextension SocketEnginePollable {\n    func createRequestForPostWithPostWait() -> URLRequest {\n        defer {\n            for packet in postWait { packet.completion?() }\n            postWait.removeAll(keepingCapacity: true)\n        }\n\n        var postStr = \"\"\n\n        if version.rawValue >= 3 {\n            postStr = postWait.lazy.map({ $0.msg }).joined(separator: \"\\u{1e}\")\n        } else {\n            for packet in postWait {\n                postStr += \"\\(packet.msg.utf16.count):\\(packet.msg)\"\n            }\n        }\n\n        DefaultSocketLogger.Logger.log(\"Created POST string: \\(postStr)\", type: \"SocketEnginePolling\")\n\n        var req = URLRequest(url: urlPollingWithSid)\n        let postData = postStr.data(using: .utf8, allowLossyConversion: false)!\n\n        addHeaders(to: &req)\n\n        req.httpMethod = \"POST\"\n        req.setValue(\"text/plain; charset=UTF-8\", forHTTPHeaderField: \"Content-Type\")\n        req.httpBody = postData\n        req.setValue(String(postData.count), forHTTPHeaderField: \"Content-Length\")\n\n        return req\n    }\n\n    /// Call to send a long-polling request.\n    ///\n    /// You shouldn't need to call this directly, the engine should automatically maintain a long-poll request.\n    public func doPoll() {\n        guard polling && !waitingForPoll && connected && !closed else { return }\n\n        var req = URLRequest(url: urlPollingWithSid)\n        addHeaders(to: &req)\n\n        doLongPoll(for: req)\n    }\n\n    func doRequest(for req: URLRequest, callbackWith callback: @escaping (Data?, URLResponse?, Error?) -> ()) {\n        guard polling && !closed && !invalidated && !fastUpgrade else { return }\n\n        DefaultSocketLogger.Logger.log(\"Doing polling \\(req.httpMethod ?? \"\") \\(req)\", type: \"SocketEnginePolling\")\n\n        session?.dataTask(with: req, completionHandler: callback).resume()\n    }\n\n    func doLongPoll(for req: URLRequest) {\n        waitingForPoll = true\n\n        doRequest(for: req) {[weak self] data, res, err in\n            guard let this = self, this.polling else { return }\n            guard let data = data, let res = res as? HTTPURLResponse, res.statusCode == 200 else {\n                if let err = err {\n                    DefaultSocketLogger.Logger.error(err.localizedDescription, type: \"SocketEnginePolling\")\n                } else {\n                    DefaultSocketLogger.Logger.error(\"Error during long poll request\", type: \"SocketEnginePolling\")\n                }\n\n                if this.polling {\n                    this.didError(reason: err?.localizedDescription ?? \"Error\")\n                }\n\n                return\n            }\n\n            DefaultSocketLogger.Logger.log(\"Got polling response\", type: \"SocketEnginePolling\")\n\n            if let str = String(data: data, encoding: .utf8) {\n                this.parsePollingMessage(str)\n            }\n\n            this.waitingForPoll = false\n\n            if this.fastUpgrade {\n                this.doFastUpgrade()\n            } else if !this.closed && this.polling {\n                this.doPoll()\n            }\n        }\n    }\n\n    private func flushWaitingForPost() {\n        guard postWait.count != 0 && connected else { return }\n        guard polling else {\n            flushWaitingForPostToWebSocket()\n\n            return\n        }\n\n        let req = createRequestForPostWithPostWait()\n\n        waitingForPost = true\n\n        DefaultSocketLogger.Logger.log(\"POSTing\", type: \"SocketEnginePolling\")\n\n        doRequest(for: req) {[weak self] _, res, err in\n            guard let this = self else { return }\n            guard let res = res as? HTTPURLResponse, res.statusCode == 200 else {\n                if let err = err {\n                    DefaultSocketLogger.Logger.error(err.localizedDescription, type: \"SocketEnginePolling\")\n                } else {\n                    DefaultSocketLogger.Logger.error(\"Error flushing waiting posts\", type: \"SocketEnginePolling\")\n                }\n\n                if this.polling {\n                    this.didError(reason: err?.localizedDescription ?? \"Error\")\n                }\n\n                return\n            }\n\n            this.waitingForPost = false\n\n            if !this.fastUpgrade {\n                this.flushWaitingForPost()\n                this.doPoll()\n            }\n        }\n    }\n\n    func parsePollingMessage(_ str: String) {\n        guard !str.isEmpty else { return }\n\n        DefaultSocketLogger.Logger.log(\"Got poll message: \\(str)\", type: \"SocketEnginePolling\")\n\n        if version.rawValue >= 3 {\n            let records = str.components(separatedBy: \"\\u{1e}\")\n\n            for record in records {\n                parseEngineMessage(record)\n            }\n        } else {\n            guard str.count != 1 else {\n                parseEngineMessage(str)\n\n                return\n            }\n\n            var reader = SocketStringReader(message: str)\n\n            while reader.hasNext {\n                if let n = Int(reader.readUntilOccurence(of: \":\")) {\n                    parseEngineMessage(reader.read(count: n))\n                } else {\n                    parseEngineMessage(str)\n                    break\n                }\n            }\n        }\n    }\n\n    /// Sends an engine.io message through the polling transport.\n    ///\n    /// You shouldn't call this directly, instead call the `write` method on `SocketEngine`.\n    ///\n    /// - parameter message: The message to send.\n    /// - parameter withType: The type of message to send.\n    /// - parameter withData: The data associated with this message.\n    /// - parameter completion: Callback called on transport write completion.\n    public func sendPollMessage(_ message: String, withType type: SocketEnginePacketType, withData datas: [Data], completion: (() -> ())? = nil) {\n        DefaultSocketLogger.Logger.log(\"Sending poll: \\(message) as type: \\(type.rawValue)\", type: \"SocketEnginePolling\")\n\n        postWait.append((String(type.rawValue) + message, completion))\n\n        for data in datas {\n            if case let .right(bin) = createBinaryDataForSend(using: data) {\n                postWait.append((bin, {}))\n            }\n        }\n\n        if !waitingForPost {\n            flushWaitingForPost()\n        }\n    }\n\n    /// Call to stop polling and invalidate the URLSession.\n    public func stopPolling() {\n        waitingForPoll = false\n        waitingForPost = false\n        session?.finishTasksAndInvalidate()\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Engine/SocketEngineSpec.swift",
    "content": "//\n//  SocketEngineSpec.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 10/7/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n//\n\nimport Foundation\nimport Starscream\n\n/// Specifies a SocketEngine.\npublic protocol SocketEngineSpec: class {\n    // MARK: Properties\n\n    /// The client for this engine.\n    var client: SocketEngineClient? { get set }\n\n    /// `true` if this engine is closed.\n    var closed: Bool { get }\n\n    /// If `true` the engine will attempt to use WebSocket compression.\n    var compress: Bool { get }\n\n    /// `true` if this engine is connected. Connected means that the initial poll connect has succeeded.\n    var connected: Bool { get }\n\n    /// The connect parameters sent during a connect.\n    var connectParams: [String: Any]? { get set }\n\n    /// An array of HTTPCookies that are sent during the connection.\n    var cookies: [HTTPCookie]? { get }\n\n    /// The queue that all engine actions take place on.\n    var engineQueue: DispatchQueue { get }\n\n    /// A dictionary of extra http headers that will be set during connection.\n    var extraHeaders: [String: String]? { get set }\n\n    /// When `true`, the engine is in the process of switching to WebSockets.\n    var fastUpgrade: Bool { get }\n\n    /// When `true`, the engine will only use HTTP long-polling as a transport.\n    var forcePolling: Bool { get }\n\n    /// When `true`, the engine will only use WebSockets as a transport.\n    var forceWebsockets: Bool { get }\n\n    /// If `true`, the engine is currently in HTTP long-polling mode.\n    var polling: Bool { get }\n\n    /// If `true`, the engine is currently seeing whether it can upgrade to WebSockets.\n    var probing: Bool { get }\n\n    /// The session id for this engine.\n    var sid: String { get }\n\n    /// The path to engine.io.\n    var socketPath: String { get }\n\n    /// The url for polling.\n    var urlPolling: URL { get }\n\n    /// The url for WebSockets.\n    var urlWebSocket: URL { get }\n\n    /// The version of engine.io being used. Default is three.\n    var version: SocketIOVersion { get }\n\n    /// If `true`, then the engine is currently in WebSockets mode.\n    @available(*, deprecated, message: \"No longer needed, if we're not polling, then we must be doing websockets\")\n    var websocket: Bool { get }\n\n    /// The WebSocket for this engine.\n    var ws: WebSocket? { get }\n\n    // MARK: Initializers\n\n    /// Creates a new engine.\n    ///\n    /// - parameter client: The client for this engine.\n    /// - parameter url: The url for this engine.\n    /// - parameter options: The options for this engine.\n    init(client: SocketEngineClient, url: URL, options: [String: Any]?)\n\n    // MARK: Methods\n\n    /// Starts the connection to the server.\n    func connect()\n\n    /// Called when an error happens during execution. Causes a disconnection.\n    func didError(reason: String)\n\n    /// Disconnects from the server.\n    ///\n    /// - parameter reason: The reason for the disconnection. This is communicated up to the client.\n    func disconnect(reason: String)\n\n    /// Called to switch from HTTP long-polling to WebSockets. After calling this method the engine will be in\n    /// WebSocket mode.\n    ///\n    /// **You shouldn't call this directly**\n    func doFastUpgrade()\n\n    /// Causes any packets that were waiting for POSTing to be sent through the WebSocket. This happens because when\n    /// the engine is attempting to upgrade to WebSocket it does not do any POSTing.\n    ///\n    /// **You shouldn't call this directly**\n    func flushWaitingForPostToWebSocket()\n\n    /// Parses raw binary received from engine.io.\n    ///\n    /// - parameter data: The data to parse.\n    func parseEngineData(_ data: Data)\n\n    /// Parses a raw engine.io packet.\n    ///\n    /// - parameter message: The message to parse.\n    func parseEngineMessage(_ message: String)\n\n    /// Writes a message to engine.io, independent of transport.\n    ///\n    /// - parameter msg: The message to send.\n    /// - parameter type: The type of this message.\n    /// - parameter data: Any data that this message has.\n    /// - parameter completion: Callback called on transport write completion.\n    func write(_ msg: String, withType type: SocketEnginePacketType, withData data: [Data], completion: (() -> ())?)\n}\n\nextension SocketEngineSpec {\n    var engineIOParam: String {\n        switch version {\n        case .two:\n            return \"&EIO=3\"\n        case .three:\n            return \"&EIO=4\"\n        }\n    }\n\n    var urlPollingWithSid: URL {\n        var com = URLComponents(url: urlPolling, resolvingAgainstBaseURL: false)!\n        com.percentEncodedQuery = com.percentEncodedQuery! + \"&sid=\\(sid.urlEncode()!)\"\n\n        if !com.percentEncodedQuery!.contains(\"EIO\") {\n            com.percentEncodedQuery = com.percentEncodedQuery! + engineIOParam\n        }\n\n        return com.url!\n    }\n\n    var urlWebSocketWithSid: URL {\n        var com = URLComponents(url: urlWebSocket, resolvingAgainstBaseURL: false)!\n        com.percentEncodedQuery = com.percentEncodedQuery! + (sid == \"\" ? \"\" : \"&sid=\\(sid.urlEncode()!)\")\n\n        if !com.percentEncodedQuery!.contains(\"EIO\") {\n            com.percentEncodedQuery = com.percentEncodedQuery! + engineIOParam\n        }\n\n\n        return com.url!\n    }\n\n    func addHeaders(to req: inout URLRequest, includingCookies additionalCookies: [HTTPCookie]? = nil) {\n        var cookiesToAdd: [HTTPCookie] = cookies ?? []\n        cookiesToAdd += additionalCookies ?? []\n\n        if !cookiesToAdd.isEmpty {\n            req.allHTTPHeaderFields = HTTPCookie.requestHeaderFields(with: cookiesToAdd)\n        }\n\n        if let extraHeaders = extraHeaders {\n            for (headerName, value) in extraHeaders {\n                req.setValue(value, forHTTPHeaderField: headerName)\n            }\n        }\n    }\n\n    func createBinaryDataForSend(using data: Data) -> Either<Data, String> {\n        let prefixB64 = version.rawValue >= 3 ? \"b\" : \"b4\"\n\n        if polling {\n            return .right(prefixB64 + data.base64EncodedString(options: Data.Base64EncodingOptions(rawValue: 0)))\n        } else {\n            return .left(version.rawValue >= 3 ? data : Data([0x4]) + data)\n        }\n    }\n\n    /// Send an engine message (4)\n    func send(_ msg: String, withData datas: [Data], completion: (() -> ())? = nil) {\n        write(msg, withType: .message, withData: datas, completion: completion)\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Engine/SocketEngineWebsocket.swift",
    "content": "//\n//  SocketEngineWebsocket.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 1/15/16.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n//\n\nimport Foundation\nimport Starscream\n\n/// Protocol that is used to implement socket.io WebSocket support\npublic protocol SocketEngineWebsocket: SocketEngineSpec {\n    // MARK: Properties\n\n    /// Whether or not the ws is connected\n    var wsConnected: Bool { get }\n\n    // MARK: Methods\n\n    /// Sends an engine.io message through the WebSocket transport.\n    ///\n    /// You shouldn't call this directly, instead call the `write` method on `SocketEngine`.\n    ///\n    /// - parameter message: The message to send.\n    /// - parameter withType: The type of message to send.\n    /// - parameter withData: The data associated with this message.\n    /// - parameter completion: Callback called on transport write completion.\n    func sendWebSocketMessage(_ str: String,\n                              withType type: SocketEnginePacketType,\n                              withData datas: [Data],\n                              completion: (() -> ())?)\n}\n\n// WebSocket methods\nextension SocketEngineWebsocket {\n    func probeWebSocket() {\n        if wsConnected  {\n            sendWebSocketMessage(\"probe\", withType: .ping, withData: [], completion: nil)\n        }\n    }\n\n    /// Sends an engine.io message through the WebSocket transport.\n    ///\n    /// You shouldn't call this directly, instead call the `write` method on `SocketEngine`.\n    ///\n    /// - parameter message: The message to send.\n    /// - parameter withType: The type of message to send.\n    /// - parameter withData: The data associated with this message.\n    /// - parameter completion: Callback called on transport write completion.\n    public func sendWebSocketMessage(_ str: String,\n                                     withType type: SocketEnginePacketType,\n                                     withData data: [Data],\n                                     completion: (() -> ())?\n    ) {\n        DefaultSocketLogger.Logger.log(\"Sending ws: \\(str) as type: \\(type.rawValue)\", type: \"SocketEngineWebSocket\")\n\n        ws?.write(string: \"\\(type.rawValue)\\(str)\")\n\n        for item in data {\n            if case let .left(bin) = createBinaryDataForSend(using: item) {\n                ws?.write(data: bin, completion: completion)\n            }\n        }\n\n        if data.count == 0 {\n            completion?()\n        }\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Manager/SocketManager.swift",
    "content": "//\n// Created by Erik Little on 10/14/17.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Dispatch\nimport Foundation\n\n///\n/// A manager for a socket.io connection.\n///\n/// A `SocketManager` is responsible for multiplexing multiple namespaces through a single `SocketEngineSpec`.\n///\n/// Example:\n///\n/// ```swift\n/// let manager = SocketManager(socketURL: URL(string:\"http://localhost:8080/\")!)\n/// let defaultNamespaceSocket = manager.defaultSocket\n/// let swiftSocket = manager.socket(forNamespace: \"/swift\")\n///\n/// // defaultNamespaceSocket and swiftSocket both share a single connection to the server\n/// ```\n///\n/// Sockets created through the manager are retained by the manager. So at the very least, a single strong reference\n/// to the manager must be maintained to keep sockets alive.\n///\n/// To disconnect a socket and remove it from the manager, either call `SocketIOClient.disconnect()` on the socket,\n/// or call one of the `disconnectSocket` methods on this class.\n///\n/// **NOTE**: The manager is not thread/queue safe, all interaction with the manager should be done on the `handleQueue`\n///\nopen class SocketManager: NSObject, SocketManagerSpec, SocketParsable, SocketDataBufferable, ConfigSettable {\n    private static let logType = \"SocketManager\"\n\n    // MARK: Properties\n\n    /// The socket associated with the default namespace (\"/\").\n    public var defaultSocket: SocketIOClient {\n        return socket(forNamespace: \"/\")\n    }\n\n    /// The URL of the socket.io server.\n    ///\n    /// If changed after calling `init`, `forceNew` must be set to `true`, or it will only connect to the url set in the\n    /// init.\n    public let socketURL: URL\n\n    /// The configuration for this client.\n    ///\n    /// **Some configs will not take affect until after a reconnect if set after calling a connect method**.\n    public var config: SocketIOClientConfiguration {\n        get {\n            return _config\n        }\n\n        set {\n            if status.active {\n                DefaultSocketLogger.Logger.log(\"Setting configs on active manager. Some configs may not be applied until reconnect\",\n                                               type: SocketManager.logType)\n            }\n\n            setConfigs(newValue)\n        }\n    }\n\n    /// The engine for this manager.\n    public var engine: SocketEngineSpec?\n\n    /// If `true` then every time `connect` is called, a new engine will be created.\n    public var forceNew = false\n\n    /// The queue that all interaction with the client should occur on. This is the queue that event handlers are\n    /// called on.\n    ///\n    /// **This should be a serial queue! Concurrent queues are not supported and might cause crashes and races**.\n    public var handleQueue = DispatchQueue.main\n\n    /// The sockets in this manager indexed by namespace.\n    public var nsps = [String: SocketIOClient]()\n\n    /// If `true`, this client will try and reconnect on any disconnects.\n    public var reconnects = true\n\n    /// The minimum number of seconds to wait before attempting to reconnect.\n    public var reconnectWait = 10\n\n    /// The maximum number of seconds to wait before attempting to reconnect.\n    public var reconnectWaitMax = 30\n\n    /// The randomization factor for calculating reconnect jitter.\n    public var randomizationFactor = 0.5\n\n    /// The status of this manager.\n    public private(set) var status: SocketIOStatus = .notConnected {\n        didSet {\n            switch status {\n            case .connected:\n                reconnecting = false\n                currentReconnectAttempt = 0\n            default:\n                break\n            }\n        }\n    }\n\n    public private(set) var version = SocketIOVersion.three\n\n    /// A list of packets that are waiting for binary data.\n    ///\n    /// The way that socket.io works all data should be sent directly after each packet.\n    /// So this should ideally be an array of one packet waiting for data.\n    ///\n    /// **This should not be modified directly.**\n    public var waitingPackets = [SocketPacket]()\n\n    private(set) var reconnectAttempts = -1\n\n    private var _config: SocketIOClientConfiguration\n    private var currentReconnectAttempt = 0\n    private var reconnecting = false\n\n    // MARK: Initializers\n\n    /// Type safe way to create a new SocketIOClient. `opts` can be omitted.\n    ///\n    /// - parameter socketURL: The url of the socket.io server.\n    /// - parameter config: The config for this socket.\n    public init(socketURL: URL, config: SocketIOClientConfiguration = []) {\n        self._config = config\n        self.socketURL = socketURL\n\n        super.init()\n\n        setConfigs(_config)\n    }\n\n    /// Not so type safe way to create a SocketIOClient, meant for Objective-C compatiblity.\n    /// If using Swift it's recommended to use `init(socketURL: NSURL, options: Set<SocketIOClientOption>)`\n    ///\n    /// - parameter socketURL: The url of the socket.io server.\n    /// - parameter config: The config for this socket.\n    @objc\n    public convenience init(socketURL: URL, config: [String: Any]?) {\n        self.init(socketURL: socketURL, config: config?.toSocketConfiguration() ?? [])\n    }\n\n    /// :nodoc:\n    deinit {\n        DefaultSocketLogger.Logger.log(\"Manager is being released\", type: SocketManager.logType)\n\n        engine?.disconnect(reason: \"Manager Deinit\")\n    }\n\n    // MARK: Methods\n\n    private func addEngine() {\n        DefaultSocketLogger.Logger.log(\"Adding engine\", type: SocketManager.logType)\n\n        engine?.engineQueue.sync {\n            self.engine?.client = nil\n\n            // Close old engine so it will not leak because of URLSession if in polling mode\n            self.engine?.disconnect(reason: \"Adding new engine\")\n        }\n\n        engine = SocketEngine(client: self, url: socketURL, config: config)\n    }\n\n    /// Connects the underlying transport and the default namespace socket.\n    ///\n    /// Override if you wish to attach a custom `SocketEngineSpec`.\n    open func connect() {\n        guard !status.active else {\n            DefaultSocketLogger.Logger.log(\"Tried connecting an already active socket\", type: SocketManager.logType)\n\n            return\n        }\n\n        if engine == nil || forceNew {\n            addEngine()\n        }\n\n        status = .connecting\n\n        engine?.connect()\n    }\n\n    /// Connects a socket through this manager's engine.\n    ///\n    /// - parameter socket: The socket who we should connect through this manager.\n    /// - parameter withPayload: Optional payload to send on connect\n    open func connectSocket(_ socket: SocketIOClient, withPayload payload: [String: Any]? = nil) {\n        guard status == .connected else {\n            DefaultSocketLogger.Logger.log(\"Tried connecting socket when engine isn't open. Connecting\",\n                                           type: SocketManager.logType)\n\n            connect()\n            return\n        }\n\n        var payloadStr = \"\"\n\n        if version.rawValue >= 3 && payload != nil,\n           let payloadData = try? JSONSerialization.data(withJSONObject: payload!, options: .fragmentsAllowed),\n           let jsonString = String(data: payloadData, encoding: .utf8) {\n            payloadStr = jsonString\n        }\n\n        engine?.send(\"0\\(socket.nsp),\\(payloadStr)\", withData: [])\n    }\n\n    /// Called when the manager has disconnected from socket.io.\n    ///\n    /// - parameter reason: The reason for the disconnection.\n    open func didDisconnect(reason: String) {\n        forAll {socket in\n            socket.didDisconnect(reason: reason)\n        }\n    }\n\n    /// Disconnects the manager and all associated sockets.\n    open func disconnect() {\n        DefaultSocketLogger.Logger.log(\"Manager closing\", type: SocketManager.logType)\n\n        status = .disconnected\n\n        engine?.disconnect(reason: \"Disconnect\")\n    }\n\n    /// Disconnects the given socket.\n    ///\n    /// This will remove the socket for the manager's control, and make the socket instance useless and ready for\n    /// releasing.\n    ///\n    /// - parameter socket: The socket to disconnect.\n    open func disconnectSocket(_ socket: SocketIOClient) {\n        engine?.send(\"1\\(socket.nsp),\", withData: [])\n\n        socket.didDisconnect(reason: \"Namespace leave\")\n    }\n\n    /// Disconnects the socket associated with `forNamespace`.\n    ///\n    /// This will remove the socket for the manager's control, and make the socket instance useless and ready for\n    /// releasing.\n    ///\n    /// - parameter nsp: The namespace to disconnect from.\n    open func disconnectSocket(forNamespace nsp: String) {\n        guard let socket = nsps.removeValue(forKey: nsp) else {\n            DefaultSocketLogger.Logger.log(\"Could not find socket for \\(nsp) to disconnect\",\n                                           type: SocketManager.logType)\n\n            return\n        }\n\n        disconnectSocket(socket)\n    }\n\n    /// Sends a client event to all sockets in `nsps`\n    ///\n    /// - parameter clientEvent: The event to emit.\n    open func emitAll(clientEvent event: SocketClientEvent, data: [Any]) {\n        forAll {socket in\n            socket.handleClientEvent(event, data: data)\n        }\n    }\n\n    /// Sends an event to the server on all namespaces in this manager.\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The data to send with this event.\n    open func emitAll(_ event: String, _ items: SocketData...) {\n        guard let emitData = try? items.map({ try $0.socketRepresentation() }) else {\n            DefaultSocketLogger.Logger.error(\"Error creating socketRepresentation for emit: \\(event), \\(items)\",\n                                             type: SocketManager.logType)\n\n            return\n        }\n\n        forAll {socket in\n            socket.emit([event] + emitData)\n        }\n    }\n\n    /// Called when the engine closes.\n    ///\n    /// - parameter reason: The reason that the engine closed.\n    open func engineDidClose(reason: String) {\n        handleQueue.async {\n            self._engineDidClose(reason: reason)\n        }\n    }\n\n    private func _engineDidClose(reason: String) {\n        waitingPackets.removeAll()\n\n        if status != .disconnected {\n            status = .notConnected\n        }\n\n        if status == .disconnected || !reconnects {\n            didDisconnect(reason: reason)\n        } else if !reconnecting {\n            reconnecting = true\n            tryReconnect(reason: reason)\n        }\n    }\n\n    /// Called when the engine errors.\n    ///\n    /// - parameter reason: The reason the engine errored.\n    open func engineDidError(reason: String) {\n        handleQueue.async {\n            self._engineDidError(reason: reason)\n        }\n    }\n\n    private func _engineDidError(reason: String) {\n        DefaultSocketLogger.Logger.error(\"\\(reason)\", type: SocketManager.logType)\n\n        emitAll(clientEvent: .error, data: [reason])\n    }\n\n    /// Called when the engine opens.\n    ///\n    /// - parameter reason: The reason the engine opened.\n    open func engineDidOpen(reason: String) {\n        handleQueue.async {\n            self._engineDidOpen(reason: reason)\n        }\n    }\n\n    private func _engineDidOpen(reason: String) {\n        DefaultSocketLogger.Logger.log(\"Engine opened \\(reason)\", type: SocketManager.logType)\n\n        status = .connected\n\n        if version.rawValue < 3 {\n            nsps[\"/\"]?.didConnect(toNamespace: \"/\", payload: nil)\n        }\n\n        for (nsp, socket) in nsps where socket.status == .connecting {\n            if version.rawValue < 3 && nsp == \"/\" {\n                continue\n            }\n\n            connectSocket(socket, withPayload: socket.connectPayload)\n        }\n    }\n\n    /// Called when the engine receives a ping message.\n    open func engineDidReceivePing() {\n        handleQueue.async {\n            self._engineDidReceivePing()\n        }\n    }\n\n    private func _engineDidReceivePing() {\n        emitAll(clientEvent: .ping, data: [])\n    }\n\n    /// Called when the sends a ping to the server.\n    open func engineDidSendPing() {\n        handleQueue.async {\n            self._engineDidSendPing()\n        }\n    }\n\n    private func _engineDidSendPing() {\n        emitAll(clientEvent: .ping, data: [])\n    }\n\n    /// Called when the engine receives a pong message.\n    open func engineDidReceivePong() {\n        handleQueue.async {\n            self._engineDidReceivePong()\n        }\n    }\n\n    private func _engineDidReceivePong() {\n        emitAll(clientEvent: .pong, data: [])\n    }\n\n    /// Called when the sends a pong to the server.\n    open func engineDidSendPong() {\n        handleQueue.async {\n            self._engineDidSendPong()\n        }\n    }\n\n    private func _engineDidSendPong() {\n        emitAll(clientEvent: .pong, data: [])\n    }\n\n    private func forAll(do: (SocketIOClient) throws -> ()) rethrows {\n        for (_, socket) in nsps {\n            try `do`(socket)\n        }\n    }\n\n    /// Called when when upgrading the http connection to a websocket connection.\n    ///\n    /// - parameter headers: The http headers.\n    open func engineDidWebsocketUpgrade(headers: [String: String]) {\n        handleQueue.async {\n            self._engineDidWebsocketUpgrade(headers: headers)\n        }\n    }\n     private func _engineDidWebsocketUpgrade(headers: [String: String]) {\n        emitAll(clientEvent: .websocketUpgrade, data: [headers])\n    }\n\n    /// Called when the engine has a message that must be parsed.\n    ///\n    /// - parameter msg: The message that needs parsing.\n    open func parseEngineMessage(_ msg: String) {\n        handleQueue.async {\n            self._parseEngineMessage(msg)\n        }\n    }\n\n    private func _parseEngineMessage(_ msg: String) {\n        guard let packet = parseSocketMessage(msg) else { return }\n        guard !packet.type.isBinary else {\n            waitingPackets.append(packet)\n\n            return\n        }\n\n        nsps[packet.nsp]?.handlePacket(packet)\n    }\n\n    /// Called when the engine receives binary data.\n    ///\n    /// - parameter data: The data the engine received.\n    open func parseEngineBinaryData(_ data: Data) {\n        handleQueue.async {\n            self._parseEngineBinaryData(data)\n        }\n    }\n\n    private func _parseEngineBinaryData(_ data: Data) {\n        guard let packet = parseBinaryData(data) else { return }\n\n        nsps[packet.nsp]?.handlePacket(packet)\n    }\n\n    /// Tries to reconnect to the server.\n    ///\n    /// This will cause a `SocketClientEvent.reconnect` event to be emitted, as well as\n    /// `SocketClientEvent.reconnectAttempt` events.\n    open func reconnect() {\n        guard !reconnecting else { return }\n\n        engine?.disconnect(reason: \"manual reconnect\")\n    }\n\n    /// Removes the socket from the manager's control. One of the disconnect methods should be called before calling this\n    /// method.\n    ///\n    /// After calling this method the socket should no longer be considered usable.\n    ///\n    /// - parameter socket: The socket to remove.\n    /// - returns: The socket removed, if it was owned by the manager.\n    @discardableResult\n    open func removeSocket(_ socket: SocketIOClient) -> SocketIOClient? {\n        return nsps.removeValue(forKey: socket.nsp)\n    }\n\n    private func tryReconnect(reason: String) {\n        guard reconnecting else { return }\n\n        DefaultSocketLogger.Logger.log(\"Starting reconnect\", type: SocketManager.logType)\n\n        // Set status to connecting and emit reconnect for all sockets\n        forAll {socket in\n            guard socket.status == .connected else { return }\n\n            socket.setReconnecting(reason: reason)\n        }\n\n        _tryReconnect()\n    }\n\n    private func _tryReconnect() {\n        guard reconnects && reconnecting && status != .disconnected else { return }\n\n        if reconnectAttempts != -1 && currentReconnectAttempt + 1 > reconnectAttempts {\n            return didDisconnect(reason: \"Reconnect Failed\")\n        }\n\n        DefaultSocketLogger.Logger.log(\"Trying to reconnect\", type: SocketManager.logType)\n\n        forAll {socket in\n            guard socket.status == .connecting else { return }\n\n            socket.handleClientEvent(.reconnectAttempt, data: [(reconnectAttempts - currentReconnectAttempt)])\n        }\n\n        currentReconnectAttempt += 1\n        connect()\n\n        let interval = reconnectInterval(attempts: currentReconnectAttempt)\n        DefaultSocketLogger.Logger.log(\"Scheduling reconnect in \\(interval)s\", type: SocketManager.logType)\n        handleQueue.asyncAfter(deadline: .now() + interval, execute: _tryReconnect)\n    }\n\n    func reconnectInterval(attempts: Int) -> Double {\n        // apply exponential factor\n        let backoffFactor = pow(1.5, attempts)\n        let interval = Double(reconnectWait) * Double(truncating: backoffFactor as NSNumber)\n        // add in a random factor smooth thundering herds\n        let rand = Double.random(in: 0 ..< 1)\n        let randomFactor = rand * randomizationFactor * Double(truncating: interval as NSNumber)\n        // add in random factor, and clamp to min and max values\n        let combined = interval + randomFactor\n        return Double(fmax(Double(reconnectWait), fmin(combined, Double(reconnectWaitMax))))\n    }\n\n    /// Sets manager specific configs.\n    ///\n    /// parameter config: The configs that should be set.\n    open func setConfigs(_ config: SocketIOClientConfiguration) {\n        for option in config {\n            switch option {\n            case let .forceNew(new):\n                forceNew = new\n            case let .handleQueue(queue):\n                handleQueue = queue\n            case let .reconnects(reconnects):\n                self.reconnects = reconnects\n            case let .reconnectAttempts(attempts):\n                reconnectAttempts = attempts\n            case let .reconnectWait(wait):\n                reconnectWait = abs(wait)\n            case let .reconnectWaitMax(wait):\n                reconnectWaitMax = abs(wait)\n            case let .randomizationFactor(factor):\n                randomizationFactor = factor\n            case let .log(log):\n                DefaultSocketLogger.Logger.log = log\n            case let .logger(logger):\n                DefaultSocketLogger.Logger = logger\n            case let .version(num):\n                version = num\n            case _:\n                continue\n            }\n        }\n\n        _config = config\n\n        if socketURL.absoluteString.hasPrefix(\"https://\") {\n            _config.insert(.secure(true))\n        }\n\n        _config.insert(.path(\"/socket.io/\"), replacing: false)\n\n        // If `ConfigSettable` & `SocketEngineSpec`, update its configs.\n        if var settableEngine = engine as? ConfigSettable & SocketEngineSpec {\n            settableEngine.engineQueue.sync {\n                settableEngine.setConfigs(self._config)\n            }\n\n            engine = settableEngine\n        }\n    }\n\n    /// Returns a `SocketIOClient` for the given namespace. This socket shares a transport with the manager.\n    ///\n    /// Calling multiple times returns the same socket.\n    ///\n    /// Sockets created from this method are retained by the manager.\n    /// Call one of the `disconnectSocket` methods on this class to remove the socket from manager control.\n    /// Or call `SocketIOClient.disconnect()` on the client.\n    ///\n    /// - parameter nsp: The namespace for the socket.\n    /// - returns: A `SocketIOClient` for the given namespace.\n    open func socket(forNamespace nsp: String) -> SocketIOClient {\n        assert(nsp.hasPrefix(\"/\"), \"forNamespace must have a leading /\")\n\n        if let socket = nsps[nsp] {\n            return socket\n        }\n\n        let client = SocketIOClient(manager: self, nsp: nsp)\n\n        nsps[nsp] = client\n\n        return client\n    }\n\n    // Test properties\n\n    func setTestStatus(_ status: SocketIOStatus) {\n        self.status = status\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Manager/SocketManagerSpec.swift",
    "content": "//\n// Created by Erik Little on 10/18/17.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Dispatch\nimport Foundation\n\n// TODO Fix the types so that we aren't using concrete types\n\n///\n/// A manager for a socket.io connection.\n///\n/// A `SocketManagerSpec` is responsible for multiplexing multiple namespaces through a single `SocketEngineSpec`.\n///\n/// Example with `SocketManager`:\n///\n/// ```swift\n/// let manager = SocketManager(socketURL: URL(string:\"http://localhost:8080/\")!)\n/// let defaultNamespaceSocket = manager.defaultSocket\n/// let swiftSocket = manager.socket(forNamespace: \"/swift\")\n///\n/// // defaultNamespaceSocket and swiftSocket both share a single connection to the server\n/// ```\n///\n/// Sockets created through the manager are retained by the manager. So at the very least, a single strong reference\n/// to the manager must be maintained to keep sockets alive.\n///\n/// To disconnect a socket and remove it from the manager, either call `SocketIOClient.disconnect()` on the socket,\n/// or call one of the `disconnectSocket` methods on this class.\n///\npublic protocol SocketManagerSpec : AnyObject, SocketEngineClient {\n    // MARK: Properties\n\n    /// Returns the socket associated with the default namespace (\"/\").\n    var defaultSocket: SocketIOClient { get }\n\n    /// The engine for this manager.\n    var engine: SocketEngineSpec? { get set }\n\n    /// If `true` then every time `connect` is called, a new engine will be created.\n    var forceNew: Bool { get set }\n\n    // TODO Per socket queues?\n    /// The queue that all interaction with the client should occur on. This is the queue that event handlers are\n    /// called on.\n    var handleQueue: DispatchQueue { get set }\n\n    /// The sockets in this manager indexed by namespace.\n    var nsps: [String: SocketIOClient] { get set }\n\n    /// If `true`, this manager will try and reconnect on any disconnects.\n    var reconnects: Bool { get set }\n\n    /// The minimum number of seconds to wait before attempting to reconnect.\n    var reconnectWait: Int { get set }\n\n    /// The maximum number of seconds to wait before attempting to reconnect.\n    var reconnectWaitMax: Int { get set }\n\n    /// The randomization factor for calculating reconnect jitter.\n    var randomizationFactor: Double { get set }\n\n    /// The URL of the socket.io server.\n    var socketURL: URL { get }\n\n    /// The status of this manager.\n    var status: SocketIOStatus { get }\n\n    /// The version of socket.io in use.\n    var version: SocketIOVersion { get }\n\n    // MARK: Methods\n\n    /// Connects the underlying transport.\n    func connect()\n\n    /// Connects a socket through this manager's engine.\n    ///\n    /// - parameter socket: The socket who we should connect through this manager.\n    /// - parameter withPayload: Optional payload to send on connect\n    func connectSocket(_ socket: SocketIOClient, withPayload: [String: Any]?)\n\n    /// Called when the manager has disconnected from socket.io.\n    ///\n    /// - parameter reason: The reason for the disconnection.\n    func didDisconnect(reason: String)\n\n    /// Disconnects the manager and all associated sockets.\n    func disconnect()\n\n    /// Disconnects the given socket.\n    ///\n    /// - parameter socket: The socket to disconnect.\n    func disconnectSocket(_ socket: SocketIOClient)\n\n    /// Disconnects the socket associated with `forNamespace`.\n    ///\n    /// - parameter nsp: The namespace to disconnect from.\n    func disconnectSocket(forNamespace nsp: String)\n\n    /// Sends an event to the server on all namespaces in this manager.\n    ///\n    /// - parameter event: The event to send.\n    /// - parameter items: The data to send with this event.\n    func emitAll(_ event: String, _ items: SocketData...)\n\n    /// Tries to reconnect to the server.\n    ///\n    /// This will cause a `disconnect` event to be emitted, as well as an `reconnectAttempt` event.\n    func reconnect()\n\n    /// Removes the socket from the manager's control.\n    /// After calling this method the socket should no longer be considered usable.\n    ///\n    /// - parameter socket: The socket to remove.\n    /// - returns: The socket removed, if it was owned by the manager.\n    @discardableResult\n    func removeSocket(_ socket: SocketIOClient) -> SocketIOClient?\n\n    /// Returns a `SocketIOClient` for the given namespace. This socket shares a transport with the manager.\n    ///\n    /// Calling multiple times returns the same socket.\n    ///\n    /// Sockets created from this method are retained by the manager.\n    /// Call one of the `disconnectSocket` methods on the implementing class to remove the socket from manager control.\n    /// Or call `SocketIOClient.disconnect()` on the client.\n    ///\n    /// - parameter nsp: The namespace for the socket.\n    /// - returns: A `SocketIOClient` for the given namespace.\n    func socket(forNamespace nsp: String) -> SocketIOClient\n}\n"
  },
  {
    "path": "Source/SocketIO/Parse/SocketPacket.swift",
    "content": "//\n//  SocketPacket.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 1/18/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n//\n\nimport Foundation\n\n/// A struct that represents a socket.io packet.\npublic struct SocketPacket : CustomStringConvertible {\n    // MARK: Properties\n\n    private static let logType = \"SocketPacket\"\n\n    /// The namespace for this packet.\n    public let nsp: String\n\n    /// If > 0 then this packet is using acking.\n    public let id: Int\n\n    /// The type of this packet.\n    public let type: PacketType\n\n    /// An array of binary data for this packet.\n    public internal(set) var binary: [Data]\n\n    /// The data for this event.\n    ///\n    /// Note: This includes all data inside of the socket.io packet payload array, which includes the event name for\n    /// event type packets.\n    public internal(set) var data: [Any]\n\n    /// Returns the payload for this packet, minus the event name if this is an event or binaryEvent type packet.\n    public var args: [Any] {\n        if type == .event || type == .binaryEvent && data.count != 0 {\n            return Array(data.dropFirst())\n        } else {\n            return data\n        }\n    }\n\n    private let placeholders: Int\n\n    /// A string representation of this packet.\n    public var description: String {\n        return \"SocketPacket {type: \\(String(type.rawValue)); data: \" +\n            \"\\(String(describing: data)); id: \\(id); placeholders: \\(placeholders); nsp: \\(nsp)}\"\n    }\n\n    /// The event name for this packet.\n    public var event: String {\n        return String(describing: data[0])\n    }\n\n    /// A string representation of this packet.\n    public var packetString: String {\n        return createPacketString()\n    }\n\n    init(type: PacketType, data: [Any] = [Any](), id: Int = -1, nsp: String, placeholders: Int = 0,\n         binary: [Data] = [Data]()) {\n        self.data = data\n        self.id = id\n        self.nsp = nsp\n        self.type = type\n        self.placeholders = placeholders\n        self.binary = binary\n    }\n\n    mutating func addData(_ data: Data) -> Bool {\n        if placeholders == binary.count {\n            return true\n        }\n\n        binary.append(data)\n\n        if placeholders == binary.count {\n            fillInPlaceholders()\n            return true\n        } else {\n            return false\n        }\n    }\n\n    private func completeMessage(_ message: String) -> String {\n        guard data.count != 0 else { return message + \"[]\" }\n        guard let jsonSend = try? data.toJSON(), let jsonString = String(data: jsonSend, encoding: .utf8) else {\n            DefaultSocketLogger.Logger.error(\"Error creating JSON object in SocketPacket.completeMessage\",\n                                             type: SocketPacket.logType)\n\n            return message + \"[]\"\n        }\n\n        return message + jsonString\n    }\n\n    private func createPacketString() -> String {\n        let typeString = String(type.rawValue)\n        // Binary count?\n        let binaryCountString = typeString + (type.isBinary ? \"\\(String(binary.count))-\" : \"\")\n        // Namespace?\n        let nspString = binaryCountString + (nsp != \"/\" ? \"\\(nsp),\" : \"\")\n        // Ack number?\n        let idString = nspString + (id != -1 ? String(id) : \"\")\n\n        return completeMessage(idString)\n    }\n\n    // Called when we have all the binary data for a packet\n    // calls _fillInPlaceholders, which replaces placeholders with the\n    // corresponding binary\n    private mutating func fillInPlaceholders() {\n        data = data.map(_fillInPlaceholders)\n    }\n\n    // Helper method that looks for placeholders\n    // If object is a collection it will recurse\n    // Returns the object if it is not a placeholder or the corresponding\n    // binary data\n    private func _fillInPlaceholders(_ object: Any) -> Any {\n        switch object {\n        case let dict as JSON:\n            if dict[\"_placeholder\"] as? Bool ?? false {\n                return binary[dict[\"num\"] as! Int]\n            } else {\n                return dict.reduce(into: JSON(), {cur, keyValue in\n                    cur[keyValue.0] = _fillInPlaceholders(keyValue.1)\n                })\n            }\n        case let arr as [Any]:\n            return arr.map(_fillInPlaceholders)\n        default:\n            return object\n        }\n    }\n}\n\npublic extension SocketPacket {\n    // MARK: PacketType enum\n\n    /// The type of packets.\n    enum PacketType: Int {\n        // MARK: Cases\n\n        /// Connect: 0\n        case connect\n\n        /// Disconnect: 1\n        case disconnect\n\n        /// Event: 2\n        case event\n\n        /// Ack: 3\n        case ack\n\n        /// Error: 4\n        case error\n\n        /// Binary Event: 5\n        case binaryEvent\n\n        /// Binary Ack: 6\n        case binaryAck\n\n        // MARK: Properties\n\n        /// Whether or not this type is binary\n        public var isBinary: Bool {\n            return self == .binaryAck || self == .binaryEvent\n        }\n    }\n}\n\nextension SocketPacket {\n    private static func findType(_ binCount: Int, ack: Bool) -> PacketType {\n        switch binCount {\n        case 0 where !ack:\n            return .event\n        case 0 where ack:\n            return .ack\n        case _ where !ack:\n            return .binaryEvent\n        case _ where ack:\n            return .binaryAck\n        default:\n            return .error\n        }\n    }\n\n    static func packetFromEmit(_ items: [Any], id: Int, nsp: String, ack: Bool, checkForBinary: Bool = true) -> SocketPacket {\n        if checkForBinary {\n            let (parsedData, binary) = deconstructData(items)\n\n            return SocketPacket(type: findType(binary.count, ack: ack), data: parsedData, id: id, nsp: nsp,\n                                binary: binary)\n        } else {\n            return SocketPacket(type: findType(0, ack: ack), data: items, id: id, nsp: nsp)\n        }\n    }\n}\n\nprivate extension SocketPacket {\n    // Recursive function that looks for NSData in collections\n    static func shred(_ data: Any, binary: inout [Data]) -> Any {\n        let placeholder = [\"_placeholder\": true, \"num\": binary.count] as JSON\n\n        switch data {\n        case let bin as Data:\n            binary.append(bin)\n\n            return placeholder\n        case let arr as [Any]:\n            return arr.map({shred($0, binary: &binary)})\n        case let dict as JSON:\n            return dict.reduce(into: JSON(), {cur, keyValue in\n                cur[keyValue.0] = shred(keyValue.1, binary: &binary)\n            })\n        default:\n            return data\n        }\n    }\n\n    // Removes binary data from emit data\n    // Returns a type containing the de-binaryed data and the binary\n    static func deconstructData(_ data: [Any]) -> ([Any], [Data]) {\n        var binary = [Data]()\n\n        return (data.map({ shred($0, binary: &binary) }), binary)\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Parse/SocketParsable.swift",
    "content": "//\n//  SocketParsable.swift\n//  Socket.IO-Client-Swift\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\n\n/// Defines that a type will be able to parse socket.io-protocol messages.\npublic protocol SocketParsable : AnyObject {\n    // MARK: Methods\n\n    /// Called when the engine has received some binary data that should be attached to a packet.\n    ///\n    /// Packets binary data should be sent directly after the packet that expects it, so there's confusion over\n    /// where the data should go. Data should be received in the order it is sent, so that the correct data is put\n    /// into the correct placeholder.\n    ///\n    /// - parameter data: The data that should be attached to a packet.\n    func parseBinaryData(_ data: Data) -> SocketPacket?\n\n    /// Called when the engine has received a string that should be parsed into a socket.io packet.\n    ///\n    /// - parameter message: The string that needs parsing.\n    /// - returns: A completed socket packet if there is no more data left to collect.\n    func parseSocketMessage(_ message: String) -> SocketPacket?\n}\n\n/// Errors that can be thrown during parsing.\npublic enum SocketParsableError : Error {\n    // MARK: Cases\n\n    /// Thrown when a packet received has an invalid data array, or is missing the data array.\n    case invalidDataArray\n\n    /// Thrown when an malformed packet is received.\n    case invalidPacket\n\n    /// Thrown when the parser receives an unknown packet type.\n    case invalidPacketType\n}\n\n/// Says that a type will be able to buffer binary data before all data for an event has come in.\npublic protocol SocketDataBufferable : AnyObject {\n    // MARK: Properties\n\n    /// A list of packets that are waiting for binary data.\n    ///\n    /// The way that socket.io works all data should be sent directly after each packet.\n    /// So this should ideally be an array of one packet waiting for data.\n    ///\n    /// **This should not be modified directly.**\n    var waitingPackets: [SocketPacket] { get set }\n}\n\npublic extension SocketParsable where Self: SocketManagerSpec & SocketDataBufferable {\n    /// Parses a message from the engine, returning a complete SocketPacket or throwing.\n    ///\n    /// - parameter message: The message to parse.\n    /// - returns: A completed packet, or throwing.\n    internal func parseString(_ message: String) throws -> SocketPacket {\n        var reader = SocketStringReader(message: message)\n\n        guard let type = Int(reader.read(count: 1)).flatMap({ SocketPacket.PacketType(rawValue: $0) }) else {\n            throw SocketParsableError.invalidPacketType\n        }\n\n        if !reader.hasNext {\n            return SocketPacket(type: type, nsp: \"/\")\n        }\n\n        var namespace = \"/\"\n        var placeholders = -1\n\n        if type.isBinary {\n            if let holders = Int(reader.readUntilOccurence(of: \"-\")) {\n                placeholders = holders\n            } else {\n                throw SocketParsableError.invalidPacket\n            }\n        }\n\n        if reader.currentCharacter == \"/\" {\n            namespace = reader.readUntilOccurence(of: \",\")\n        }\n\n        if !reader.hasNext {\n            return SocketPacket(type: type, nsp: namespace, placeholders: placeholders)\n        }\n\n        var idString = \"\"\n\n        if type == .error {\n            reader.advance(by: -1)\n        } else {\n            while let int = Int(reader.read(count: 1)) {\n                idString += String(int)\n            }\n\n            reader.advance(by: -2)\n        }\n\n        var dataArray = String(message.utf16[message.utf16.index(reader.currentIndex, offsetBy: 1)...])!\n\n        if (type == .error || type == .connect) && !dataArray.hasPrefix(\"[\") && !dataArray.hasSuffix(\"]\") {\n            dataArray = \"[\" + dataArray + \"]\"\n        }\n\n        let data = try parseData(dataArray)\n\n        return SocketPacket(type: type, data: data, id: Int(idString) ?? -1, nsp: namespace, placeholders: placeholders)\n    }\n\n    // Parses data for events\n    private func parseData(_ data: String) throws -> [Any] {\n        do {\n            return try data.toArray()\n        } catch {\n            throw SocketParsableError.invalidDataArray\n        }\n    }\n\n    /// Called when the engine has received a string that should be parsed into a socket.io packet.\n    ///\n    /// - parameter message: The string that needs parsing.\n    /// - returns: A completed socket packet or nil if the packet is invalid.\n    func parseSocketMessage(_ message: String) -> SocketPacket? {\n        guard !message.isEmpty else { return nil }\n\n        DefaultSocketLogger.Logger.log(\"Parsing \\(message)\", type: \"SocketParser\")\n\n        do {\n            let packet = try parseString(message)\n\n            DefaultSocketLogger.Logger.log(\"Decoded packet as: \\(packet.description)\", type: \"SocketParser\")\n\n            return packet\n        } catch {\n            DefaultSocketLogger.Logger.error(\"\\(error): \\(message)\", type: \"SocketParser\")\n\n            return nil\n        }\n    }\n\n    /// Called when the engine has received some binary data that should be attached to a packet.\n    ///\n    /// Packets binary data should be sent directly after the packet that expects it, so there's confusion over\n    /// where the data should go. Data should be received in the order it is sent, so that the correct data is put\n    /// into the correct placeholder.\n    ///\n    /// - parameter data: The data that should be attached to a packet.\n    /// - returns: A completed socket packet if there is no more data left to collect.\n    func parseBinaryData(_ data: Data) -> SocketPacket? {\n        guard !waitingPackets.isEmpty else {\n            DefaultSocketLogger.Logger.error(\"Got data when not remaking packet\", type: \"SocketParser\")\n\n            return nil\n        }\n\n        // Should execute event?\n        guard waitingPackets[waitingPackets.count - 1].addData(data) else { return nil }\n\n        return waitingPackets.removeLast()\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Util/SocketExtensions.swift",
    "content": "//\n//  SocketExtensions.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 7/1/2016.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\nimport Starscream\n\nenum JSONError : Error {\n    case notArray\n    case notNSDictionary\n}\n\nextension Array {\n    func toJSON() throws -> Data {\n        return try JSONSerialization.data(withJSONObject: self, options: JSONSerialization.WritingOptions(rawValue: 0))\n    }\n}\n\nextension CharacterSet {\n    static var allowedURLCharacterSet: CharacterSet {\n        return CharacterSet(charactersIn: \"!*'();:@&=+$,/?%#[]\\\" {}^|\").inverted\n    }\n}\n\nextension Dictionary where Key == String, Value == Any {\n    private static func keyValueToSocketIOClientOption(key: String, value: Any) -> SocketIOClientOption? {\n        switch (key, value) {\n        case let (\"connectParams\", params as [String: Any]):\n            return .connectParams(params)\n        case let (\"cookies\", cookies as [HTTPCookie]):\n            return .cookies(cookies)\n        case let (\"extraHeaders\", headers as [String: String]):\n            return .extraHeaders(headers)\n        case let (\"forceNew\", force as Bool):\n            return .forceNew(force)\n        case let (\"forcePolling\", force as Bool):\n            return .forcePolling(force)\n        case let (\"forceWebsockets\", force as Bool):\n            return .forceWebsockets(force)\n        case let (\"handleQueue\", queue as DispatchQueue):\n            return .handleQueue(queue)\n        case let (\"log\", log as Bool):\n            return .log(log)\n        case let (\"logger\", logger as SocketLogger):\n            return .logger(logger)\n        case let (\"path\", path as String):\n            return .path(path)\n        case let (\"reconnects\", reconnects as Bool):\n            return .reconnects(reconnects)\n        case let (\"reconnectAttempts\", attempts as Int):\n            return .reconnectAttempts(attempts)\n        case let (\"reconnectWait\", wait as Int):\n            return .reconnectWait(wait)\n        case let (\"reconnectWaitMax\", wait as Int):\n            return .reconnectWaitMax(wait)\n        case let (\"randomizationFactor\", factor as Double):\n            return .randomizationFactor(factor)\n        case let (\"secure\", secure as Bool):\n            return .secure(secure)\n        case let (\"security\", security as CertificatePinning):\n            return .security(security)\n        case let (\"selfSigned\", selfSigned as Bool):\n            return .selfSigned(selfSigned)\n        case let (\"sessionDelegate\", delegate as URLSessionDelegate):\n            return .sessionDelegate(delegate)\n        case let (\"compress\", compress as Bool):\n            return compress ? .compress : nil\n        case let (\"enableSOCKSProxy\", enable as Bool):\n            return .enableSOCKSProxy(enable)\n        case let (\"version\", version as Int):\n            return .version(SocketIOVersion(rawValue: version) ?? .three)\n        case _:\n            return nil\n        }\n    }\n\n    func toSocketConfiguration() -> SocketIOClientConfiguration {\n        var options = [] as SocketIOClientConfiguration\n\n        for (rawKey, value) in self {\n            if let opt = Dictionary.keyValueToSocketIOClientOption(key: rawKey, value: value) {\n                options.insert(opt)\n            }\n        }\n\n        return options\n    }\n}\n\nextension String {\n    func toArray() throws -> [Any] {\n        guard let stringData = data(using: .utf16, allowLossyConversion: false) else { return [] }\n        guard let array = try JSONSerialization.jsonObject(with: stringData, options: .mutableContainers) as? [Any] else {\n             throw JSONError.notArray\n        }\n\n        return array\n    }\n\n    func toDictionary() throws -> [String: Any] {\n        guard let binData = data(using: .utf16, allowLossyConversion: false) else { return [:] }\n        guard let json = try JSONSerialization.jsonObject(with: binData, options: .allowFragments) as? [String: Any] else {\n            throw JSONError.notNSDictionary\n        }\n\n        return json\n    }\n\n    func urlEncode() -> String? {\n        return addingPercentEncoding(withAllowedCharacters: .allowedURLCharacterSet)\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Util/SocketLogger.swift",
    "content": "//\n//  SocketLogger.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 4/11/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\n\n/// Represents a class will log client events.\npublic protocol SocketLogger : AnyObject {\n    // MARK: Properties\n\n    /// Whether to log or not\n    var log: Bool { get set }\n\n    // MARK: Methods\n\n    /// Normal log messages\n    ///\n    /// - parameter message: The message being logged. Can include `%@` that will be replaced with `args`\n    /// - parameter type: The type of entity that called for logging.\n    /// - parameter args: Any args that should be inserted into the message. May be left out.\n    func log(_ message: @autoclosure () -> String, type: String)\n\n    /// Error Messages\n    ///\n    /// - parameter message: The message being logged. Can include `%@` that will be replaced with `args`\n    /// - parameter type: The type of entity that called for logging.\n    /// - parameter args: Any args that should be inserted into the message. May be left out.\n    func error(_ message: @autoclosure () -> String, type: String)\n}\n\npublic extension SocketLogger {\n    /// Default implementation.\n    func log(_ message: @autoclosure () -> String, type: String) {\n        guard log else { return }\n\n        abstractLog(\"LOG\", message: message(), type: type)\n    }\n\n    /// Default implementation.\n    func error(_ message: @autoclosure () -> String, type: String) {\n        guard log else { return }\n\n        abstractLog(\"ERROR\", message: message(), type: type)\n    }\n\n    private func abstractLog(_ logType: String, message: @autoclosure () -> String, type: String) {\n        NSLog(\"\\(logType) \\(type): %@\", message())\n    }\n}\n\nclass DefaultSocketLogger : SocketLogger {\n    static var Logger: SocketLogger = DefaultSocketLogger()\n\n    var log = false\n}\n"
  },
  {
    "path": "Source/SocketIO/Util/SocketStringReader.swift",
    "content": "//\n//  SocketStringReader.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Lukas Schmidt on 07.09.15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nstruct SocketStringReader {\n    let message: String\n    var currentIndex: String.UTF16View.Index\n    var hasNext: Bool {\n        return currentIndex != message.utf16.endIndex\n    }\n\n    var currentCharacter: String {\n        return String(UnicodeScalar(message.utf16[currentIndex])!)\n    }\n\n    init(message: String) {\n        self.message = message\n        currentIndex = message.utf16.startIndex\n    }\n\n    @discardableResult\n    mutating func advance(by: Int) -> String.UTF16View.Index {\n        currentIndex = message.utf16.index(currentIndex, offsetBy: by)\n\n        return currentIndex\n    }\n\n    mutating func read(count: Int) -> String {\n        let readString = String(message.utf16[currentIndex..<message.utf16.index(currentIndex, offsetBy: count)])!\n\n        advance(by: count)\n\n        return readString\n    }\n\n    mutating func readUntilOccurence(of string: String) -> String {\n        let substring = message.utf16[currentIndex...]\n\n        guard let foundIndex = substring.firstIndex(where: { $0 == string.utf16.first! }) else {\n            currentIndex = message.utf16.endIndex\n\n            return String(substring)!\n        }\n\n        advance(by: substring.distance(from: substring.startIndex, to: foundIndex) + 1)\n\n        return String(substring[substring.startIndex..<foundIndex])!\n    }\n\n    mutating func readUntilEnd() -> String {\n        return read(count: message.utf16.distance(from: currentIndex, to: message.utf16.endIndex))\n    }\n}\n"
  },
  {
    "path": "Source/SocketIO/Util/SocketTypes.swift",
    "content": "//\n//  SocketTypes.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 4/8/15.\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\n\n/// A marking protocol that says a type can be represented in a socket.io packet.\n///\n/// Example:\n///\n/// ```swift\n/// struct CustomData : SocketData {\n///    let name: String\n///    let age: Int\n///\n///    func socketRepresentation() -> SocketData {\n///        return [\"name\": name, \"age\": age]\n///    }\n/// }\n///\n/// socket.emit(\"myEvent\", CustomData(name: \"Erik\", age: 24))\n/// ```\npublic protocol SocketData {\n    // MARK: Methods\n\n    /// A representation of self that can sent over socket.io.\n    func socketRepresentation() throws -> SocketData\n}\n\npublic extension SocketData {\n    /// Default implementation. Only works for native Swift types and a few Foundation types.\n    func socketRepresentation() -> SocketData {\n        return self\n    }\n}\n\nextension Array : SocketData { }\nextension Bool : SocketData { }\nextension Dictionary : SocketData { }\nextension Double : SocketData { }\nextension Int : SocketData { }\nextension NSArray : SocketData { }\nextension Data : SocketData { }\nextension NSData : SocketData { }\nextension NSDictionary : SocketData { }\nextension NSString : SocketData { }\nextension NSNull : SocketData { }\nextension String : SocketData { }\n\n/// A typealias for an ack callback.\npublic typealias AckCallback = ([Any]) -> ()\n\n/// A typealias for a normal callback.\npublic typealias NormalCallback = ([Any], SocketAckEmitter) -> ()\n\n/// A typealias for a queued POST\npublic typealias Post = (msg: String, completion: (() -> ())?)\n\ntypealias JSON = [String: Any]\ntypealias Probe = (msg: String, type: SocketEnginePacketType, data: [Data], completion: (() -> ())?)\ntypealias ProbeWaitQueue = [Probe]\n\nenum Either<E, V> {\n    case left(E)\n    case right(V)\n}\n"
  },
  {
    "path": "Tests/TestSocketIO/SocketAckManagerTest.swift",
    "content": "//\n//  SocketAckManagerTest.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Lukas Schmidt on 04.09.15.\n//\n//\n\nimport XCTest\n@testable import SocketIO\n\nclass SocketAckManagerTest : XCTestCase {\n    var ackManager = SocketAckManager()\n\n    func testAddAcks() {\n        let callbackExpection = expectation(description: \"callbackExpection\")\n        let itemsArray = [\"Hi\", \"ho\"]\n\n        func callback(_ items: [Any]) {\n            callbackExpection.fulfill()\n        }\n\n        ackManager.addAck(1, callback: callback)\n        ackManager.executeAck(1, with: itemsArray)\n\n        waitForExpectations(timeout: 3.0, handler: nil)\n    }\n\n    func testManagerTimeoutAck() {\n        let callbackExpection = expectation(description: \"Manager should timeout ack with noAck status\")\n        let itemsArray = [\"Hi\", \"ho\"]\n\n        func callback(_ items: [Any]) {\n            XCTAssertEqual(items.count, 1, \"Timed out ack should have one value\")\n            guard let timeoutReason = items[0] as? String else {\n                XCTFail(\"Timeout reason should be a string\")\n\n                return\n            }\n\n            XCTAssert(timeoutReason == SocketAckStatus.noAck)\n\n            callbackExpection.fulfill()\n        }\n\n        ackManager.addAck(1, callback: callback)\n        ackManager.timeoutAck(1)\n\n        waitForExpectations(timeout: 0.2, handler: nil)\n    }\n}\n"
  },
  {
    "path": "Tests/TestSocketIO/SocketBasicPacketTest.swift",
    "content": "//\n//  SocketBasicPacketTest.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 10/7/15.\n//\n//\n\nimport XCTest\n@testable import SocketIO\n\nclass SocketBasicPacketTest : XCTestCase {\n    func testEmptyEmit() {\n        let sendData = [\"test\"]\n        let packetStr = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/\", ack: false).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testNullEmit() {\n\t\tlet sendData: [Any] = [\"test\", NSNull()]\n        let packetStr = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/\", ack: false).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testStringEmit() {\n        let sendData = [\"test\", \"foo bar\"]\n        let packetStr = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/\", ack: false).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testStringEmitWithQuotes() {\n        let sendData = [\"test\", \"\\\"he\\\"llo world\\\"\"]\n        let packetStr = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/\", ack: false).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testJSONEmit() {\n        let sendData: [Any] = [\"test\", [\"foobar\": true, \"hello\": 1, \"test\": \"hello\", \"null\": NSNull()]]\n        let packetStr = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/\", ack: false).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testArrayEmit() {\n        let sendData: [Any] = [\"test\", [\"hello\", 1, [\"test\": \"test\"]]]\n        let packetStr = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/\", ack: false).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testBinaryEmit() {\n        let sendData: [Any] = [\"test\", data]\n        let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .binaryEvent)\n        XCTAssertEqual(packet.binary, [data])\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: [\n            \"test\",\n            [\"_placeholder\": true, \"num\": 0]\n        ]))\n    }\n\n    func testMultipleBinaryEmit() {\n        let sendData: [Any] = [\"test\", [\"data1\": data, \"data2\": data2] as NSDictionary]\n        let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .binaryEvent)\n\n        let binaryObj = parsed.data[1] as! [String: Any]\n        let data1Loc = (binaryObj[\"data1\"] as! [String: Any])[\"num\"] as! Int\n        let data2Loc = (binaryObj[\"data2\"] as! [String: Any])[\"num\"] as! Int\n\n        XCTAssertEqual(packet.binary[data1Loc], data)\n        XCTAssertEqual(packet.binary[data2Loc], data2)\n    }\n\n    func testEmitWithAck() {\n        let sendData = [\"test\"]\n        let packetStr = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/\", ack: false).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testEmitDataWithAck() {\n        let sendData: [Any] = [\"test\", data]\n        let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .binaryEvent)\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: [\n            \"test\",\n            [\"_placeholder\": true, \"num\": 0]\n        ]))\n        XCTAssertEqual(packet.binary, [data])\n    }\n\n    // Acks\n    func testEmptyAck() {\n        let packetStr = SocketPacket.packetFromEmit([], id: 0, nsp: \"/\", ack: true).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .ack)\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: []))\n    }\n\n    func testNullAck() {\n        let sendData = [NSNull()]\n        let packetStr = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/\", ack: true).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .ack)\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testStringAck() {\n        let sendData = [\"test\"]\n        let packetStr = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/\", ack: true).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .ack)\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testJSONAck() {\n        let sendData = [[\"foobar\": true, \"hello\": 1, \"test\": \"hello\", \"null\": NSNull()]]\n        let packetStr = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/\", ack: true).packetString\n        let parsed = parser.parseSocketMessage(packetStr)!\n\n        XCTAssertEqual(parsed.type, .ack)\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testBinaryAck() {\n        let sendData = [data]\n        let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/\", ack: true)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .binaryAck)\n        XCTAssertEqual(packet.binary, [data])\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: [\n            [\"_placeholder\": true, \"num\": 0]\n        ]))\n    }\n\n    func testMultipleBinaryAck() {\n        let sendData = [[\"data1\": data, \"data2\": data2]]\n        let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/\", ack: true)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertEqual(parsed.type, .binaryAck)\n\n        let binaryObj = parsed.data[0] as! [String: Any]\n        let data1Loc = (binaryObj[\"data1\"] as! [String: Any])[\"num\"] as! Int\n        let data2Loc = (binaryObj[\"data2\"] as! [String: Any])[\"num\"] as! Int\n\n        XCTAssertEqual(packet.binary[data1Loc], data)\n        XCTAssertEqual(packet.binary[data2Loc], data2)\n    }\n\n    func testBinaryStringPlaceholderInMessage() {\n        let engineString = \"52-[\\\"test\\\",\\\"~~0\\\",{\\\"num\\\":0,\\\"_placeholder\\\":true},{\\\"_placeholder\\\":true,\\\"num\\\":1}]\"\n        let manager = SocketManager(socketURL: URL(string: \"http://localhost/\")!)\n\n        var packet = try! manager.parseString(engineString)\n\n        XCTAssertEqual(packet.event, \"test\")\n        _ = packet.addData(data)\n        _ = packet.addData(data2)\n        XCTAssertEqual(packet.args[0] as? String, \"~~0\")\n    }\n\n    private func compareAnyArray(input: [Any], expected: [Any]) -> Bool {\n        guard input.count == expected.count else { return false }\n\n        return (input as NSArray).isEqual(to: expected)\n    }\n\n    let data = \"test\".data(using: String.Encoding.utf8)!\n    let data2 = \"test2\".data(using: String.Encoding.utf8)!\n    var parser: SocketParsable!\n\n    override func setUp() {\n        super.setUp()\n\n        parser = SocketManager(socketURL: URL(string: \"http://localhost\")!)\n    }\n}\n"
  },
  {
    "path": "Tests/TestSocketIO/SocketEngineTest.swift",
    "content": "//\n//  SocketEngineTest.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 10/15/15.\n//\n//\n\nimport XCTest\n@testable import SocketIO\n\nclass SocketEngineTest: XCTestCase {\n    func testBasicPollingMessageV3() {\n        let expect = expectation(description: \"Basic polling test v3\")\n\n        socket.on(\"blankTest\") {data, ack in\n            expect.fulfill()\n        }\n\n        engine.setConfigs([.version(.two)])\n        engine.parsePollingMessage(\"15:42[\\\"blankTest\\\"]\")\n\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testBasicPollingMessage() {\n        let expect = expectation(description: \"Basic polling test\")\n        socket.on(\"blankTest\") {data, ack in\n            expect.fulfill()\n        }\n\n        engine.parsePollingMessage(\"42[\\\"blankTest\\\"]\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testTwoPacketsInOnePollTest() {\n        let finalExpectation = expectation(description: \"Final packet in poll test\")\n        var gotBlank = false\n\n        socket.on(\"blankTest\") {data, ack in\n            gotBlank = true\n        }\n\n        socket.on(\"stringTest\") {data, ack in\n            if let str = data[0] as? String, gotBlank {\n                if str == \"hello\" {\n                    finalExpectation.fulfill()\n                }\n            }\n        }\n\n        engine.parsePollingMessage(\"42[\\\"blankTest\\\"]\\u{1e}42[\\\"stringTest\\\",\\\"hello\\\"]\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testEngineDoesErrorOnUnknownTransport() {\n        let finalExpectation = expectation(description: \"Unknown Transport\")\n\n        socket.on(\"error\") {data, ack in\n            if let error = data[0] as? String, error == \"Unknown transport\" {\n                finalExpectation.fulfill()\n            }\n        }\n\n        engine.parseEngineMessage(\"{\\\"code\\\": 0, \\\"message\\\": \\\"Unknown transport\\\"}\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testEngineDoesErrorOnUnknownMessage() {\n        let finalExpectation = expectation(description: \"Engine Errors\")\n\n        socket.on(\"error\") {data, ack in\n            finalExpectation.fulfill()\n        }\n\n        engine.parseEngineMessage(\"afafafda\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testEngineDecodesUTF8Properly() {\n        let expect = expectation(description: \"Engine Decodes utf8\")\n\n        socket.on(\"stringTest\") {data, ack in\n            XCTAssertEqual(data[0] as? String, \"lïne one\\nlīne \\rtwo𦅙𦅛\", \"Failed string test\")\n            expect.fulfill()\n        }\n\n        let stringMessage = \"42[\\\"stringTest\\\",\\\"lïne one\\\\nlīne \\\\rtwo𦅙𦅛\\\"]\"\n\n        engine.parsePollingMessage(\"\\(stringMessage)\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testEncodeURLProperly() {\n        engine.connectParams = [\n            \"created\": \"2016-05-04T18:31:15+0200\"\n        ]\n\n        XCTAssertEqual(engine.urlPolling.query, \"transport=polling&b64=1&created=2016-05-04T18%3A31%3A15%2B0200&EIO=4\")\n        XCTAssertEqual(engine.urlWebSocket.query, \"transport=websocket&created=2016-05-04T18%3A31%3A15%2B0200&EIO=4\")\n\n        engine.connectParams = [\n            \"forbidden\": \"!*'();:@&=+$,/?%#[]\\\" {}^|\"\n        ]\n\n        XCTAssertEqual(engine.urlPolling.query, \"transport=polling&b64=1&forbidden=%21%2A%27%28%29%3B%3A%40%26%3D%2B%24%2C%2F%3F%25%23%5B%5D%22%20%7B%7D%5E%7C&EIO=4\")\n        XCTAssertEqual(engine.urlWebSocket.query, \"transport=websocket&forbidden=%21%2A%27%28%29%3B%3A%40%26%3D%2B%24%2C%2F%3F%25%23%5B%5D%22%20%7B%7D%5E%7C&EIO=4\")\n    }\n\n    func testBase64Data() {\n        let expect = expectation(description: \"Engine Decodes base64 data\")\n        let b64String = \"baGVsbG8NCg==\"\n        let packetString = \"451-[\\\"test\\\",{\\\"test\\\":{\\\"_placeholder\\\":true,\\\"num\\\":0}}]\"\n\n        socket.on(\"test\") {data, ack in\n            if let data = data[0] as? Data, let string = String(data: data, encoding: .utf8) {\n                XCTAssertEqual(string, \"hello\")\n            }\n\n            expect.fulfill()\n        }\n\n        engine.parseEngineMessage(packetString)\n        engine.parseEngineMessage(b64String)\n\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testSettingExtraHeadersBeforeConnectSetsEngineExtraHeaders() {\n        let newValue = [\"hello\": \"world\"]\n\n        manager.engine = engine\n        manager.setTestStatus(.notConnected)\n        manager.config = [.extraHeaders([\"new\": \"value\"])]\n        manager.config.insert(.extraHeaders(newValue), replacing: true)\n\n        XCTAssertEqual(2, manager.config.count)\n        XCTAssertEqual(manager.engine!.extraHeaders!, newValue)\n\n        for config in manager.config {\n            switch config {\n            case let .extraHeaders(headers):\n                XCTAssertTrue(headers.keys.contains(\"hello\"), \"It should contain hello header key\")\n                XCTAssertFalse(headers.keys.contains(\"new\"), \"It should not contain old data\")\n            case .path:\n                continue\n            default:\n                XCTFail(\"It should only have two configs\")\n            }\n        }\n    }\n\n    func testSettingExtraHeadersAfterConnectDoesNotIgnoreChanges() {\n        let newValue = [\"hello\": \"world\"]\n\n        manager.engine = engine\n        manager.setTestStatus(.connected)\n        engine.setConnected(true)\n        manager.config = [.extraHeaders([\"new\": \"value\"])]\n        manager.config.insert(.extraHeaders([\"hello\": \"world\"]), replacing: true)\n\n        XCTAssertEqual(2, manager.config.count)\n        XCTAssertEqual(manager.engine!.extraHeaders!, newValue)\n    }\n\n    func testSettingPathAfterConnectDoesNotIgnoreChanges() {\n        let newValue = \"/newpath/\"\n\n        manager.engine = engine\n        manager.setTestStatus(.connected)\n        engine.setConnected(true)\n        manager.config.insert(.path(newValue))\n\n        XCTAssertEqual(1, manager.config.count)\n        XCTAssertEqual(manager.engine!.socketPath, newValue)\n    }\n\n    func testSettingCompressAfterConnectDoesNotIgnoreChanges() {\n        manager.engine = engine\n        manager.setTestStatus(.connected)\n        engine.setConnected(true)\n        manager.config.insert(.compress)\n\n        XCTAssertEqual(2, manager.config.count)\n        XCTAssertTrue(manager.engine!.compress)\n    }\n\n    func testSettingForcePollingAfterConnectDoesNotIgnoreChanges() {\n        manager.engine = engine\n        manager.setTestStatus(.connected)\n        engine.setConnected(true)\n        manager.config.insert(.forcePolling(true))\n\n        XCTAssertEqual(2, manager.config.count)\n        XCTAssertTrue(manager.engine!.forcePolling)\n    }\n\n    func testSettingForceWebSocketsAfterConnectDoesNotIgnoreChanges() {\n        manager.engine = engine\n        manager.setTestStatus(.connected)\n        engine.setConnected(true)\n        manager.config.insert(.forceWebsockets(true))\n\n        XCTAssertEqual(2, manager.config.count)\n        XCTAssertTrue(manager.engine!.forceWebsockets)\n    }\n\n    func testChangingEngineHeadersAfterInit() {\n        engine.extraHeaders = [\"Hello\": \"World\"]\n\n        let req = engine.createRequestForPostWithPostWait()\n\n        XCTAssertEqual(\"World\", req.allHTTPHeaderFields?[\"Hello\"])\n    }\n\n    var manager: SocketManager!\n    var socket: SocketIOClient!\n    var engine: SocketEngine!\n\n    override func setUp() {\n        super.setUp()\n\n        manager = SocketManager(socketURL: URL(string: \"http://localhost\")!)\n        socket = manager.defaultSocket\n        engine = SocketEngine(client: manager, url: URL(string: \"http://localhost\")!, options: nil)\n\n        socket.setTestable()\n    }\n}\n"
  },
  {
    "path": "Tests/TestSocketIO/SocketIOClientConfigurationTest.swift",
    "content": "//\n//  TestSocketIOClientConfiguration.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 8/13/16.\n//\n//\n\nimport XCTest\nimport SocketIO\n\nclass TestSocketIOClientConfiguration : XCTestCase {\n    func testReplaceSameOption() {\n        config.insert(.log(true))\n\n        XCTAssertEqual(config.count, 2)\n\n        switch config[0] {\n        case let .log(log):\n            XCTAssertTrue(log)\n        default:\n            XCTFail()\n        }\n    }\n\n    func testIgnoreIfExisting() {\n        config.insert(.forceNew(false), replacing: false)\n\n        XCTAssertEqual(config.count, 2)\n\n        switch config[1] {\n        case let .forceNew(new):\n            XCTAssertTrue(new)\n        default:\n            XCTFail()\n        }\n    }\n\n    var config = [] as SocketIOClientConfiguration\n\n    override func setUp() {\n        config = [.log(false), .forceNew(true)]\n\n        super.setUp()\n    }\n}\n"
  },
  {
    "path": "Tests/TestSocketIO/SocketMangerTest.swift",
    "content": "//\n// Created by Erik Little on 10/21/17.\n//\n\nimport Dispatch\nimport Foundation\n@testable import SocketIO\nimport XCTest\n\nclass SocketMangerTest : XCTestCase {\n    func testManagerProperties() {\n        XCTAssertNotNil(manager.defaultSocket)\n        XCTAssertNil(manager.engine)\n        XCTAssertFalse(manager.forceNew)\n        XCTAssertEqual(manager.handleQueue, DispatchQueue.main)\n        XCTAssertTrue(manager.reconnects)\n        XCTAssertEqual(manager.reconnectWait, 10)\n        XCTAssertEqual(manager.reconnectWaitMax, 30)\n        XCTAssertEqual(manager.randomizationFactor, 0.5)\n        XCTAssertEqual(manager.status, .notConnected)\n    }\n\n    func testSettingConfig() {\n        let manager = SocketManager(socketURL: URL(string: \"https://example.com/\")!)\n\n        XCTAssertEqual(manager.config.first!, .secure(true))\n\n        manager.config = []\n\n        XCTAssertEqual(manager.config.first!, .secure(true))\n    }\n\n    func testBackoffIntervalCalulation() {\n        XCTAssertLessThanOrEqual(manager.reconnectInterval(attempts: -1), Double(manager.reconnectWaitMax))\n        XCTAssertLessThanOrEqual(manager.reconnectInterval(attempts: 0), 15)\n        XCTAssertLessThanOrEqual(manager.reconnectInterval(attempts: 1), 22.5)\n        XCTAssertLessThanOrEqual(manager.reconnectInterval(attempts: 2), 33.75)\n        XCTAssertLessThanOrEqual(manager.reconnectInterval(attempts: 50), Double(manager.reconnectWaitMax))\n        XCTAssertLessThanOrEqual(manager.reconnectInterval(attempts: 10000), Double(manager.reconnectWaitMax))\n\n        XCTAssertGreaterThanOrEqual(manager.reconnectInterval(attempts: -1), Double(manager.reconnectWait))\n        XCTAssertGreaterThanOrEqual(manager.reconnectInterval(attempts: 0), Double(manager.reconnectWait))\n        XCTAssertGreaterThanOrEqual(manager.reconnectInterval(attempts: 1), 15)\n        XCTAssertGreaterThanOrEqual(manager.reconnectInterval(attempts: 2), 22.5)\n        XCTAssertGreaterThanOrEqual(manager.reconnectInterval(attempts: 10000), Double(manager.reconnectWait))\n    }\n\n    func testManagerCallsConnect() {\n        setUpSockets()\n\n        socket.expectations[ManagerExpectation.didConnectCalled] = expectation(description: \"The manager should call connect on the default socket\")\n        socket2.expectations[ManagerExpectation.didConnectCalled] = expectation(description: \"The manager should call connect on the socket\")\n\n        socket.connect()\n        socket2.connect()\n\n        manager.fakeConnecting()\n        manager.fakeConnecting(toNamespace: \"/swift\")\n\n        waitForExpectations(timeout: 0.3)\n    }\n\n    func testManagerCallsDisconnect() {\n        setUpSockets()\n\n        socket.expectations[ManagerExpectation.didDisconnectCalled] = expectation(description: \"The manager should call disconnect on the default socket\")\n        socket2.expectations[ManagerExpectation.didDisconnectCalled] = expectation(description: \"The manager should call disconnect on the socket\")\n\n        socket2.on(clientEvent: .connect) {data, ack in\n            self.manager.disconnect()\n            self.manager.fakeDisconnecting()\n        }\n\n        socket.connect()\n        socket2.connect()\n\n        manager.fakeConnecting()\n        manager.fakeConnecting(toNamespace: \"/swift\")\n\n        waitForExpectations(timeout: 0.3)\n    }\n\n//    func testManagerEmitAll() {\n//        setUpSockets()\n//\n//        socket.expectations[ManagerExpectation.emitAllEventCalled] = expectation(description: \"The manager should emit an event to the default socket\")\n//        socket2.expectations[ManagerExpectation.emitAllEventCalled] = expectation(description: \"The manager should emit an event to the socket\")\n//\n//        socket2.on(clientEvent: .connect) {data, ack in\n//            print(\"connect\")\n//            self.manager.emitAll(\"event\", \"testing\")\n//        }\n//\n//        socket.connect()\n//        socket2.connect()\n//\n//        manager.fakeConnecting(toNamespace: \"/swift\")\n//\n//        waitForExpectations(timeout: 0.3)\n//    }\n\n    func testManagerSetsConfigs() {\n        let queue = DispatchQueue(label: \"testQueue\")\n\n        manager = TestManager(socketURL: URL(string: \"http://localhost/\")!, config: [\n            .handleQueue(queue),\n            .forceNew(true),\n            .reconnects(false),\n            .reconnectWait(5),\n            .reconnectWaitMax(5),\n            .randomizationFactor(0.7),\n            .reconnectAttempts(5)\n        ])\n\n        XCTAssertEqual(manager.handleQueue, queue)\n        XCTAssertTrue(manager.forceNew)\n        XCTAssertFalse(manager.reconnects)\n        XCTAssertEqual(manager.reconnectWait, 5)\n        XCTAssertEqual(manager.reconnectWaitMax, 5)\n        XCTAssertEqual(manager.randomizationFactor, 0.7)\n        XCTAssertEqual(manager.reconnectAttempts, 5)\n    }\n\n    func testManagerRemovesSocket() {\n        setUpSockets()\n\n        manager.removeSocket(socket)\n\n        XCTAssertNil(manager.nsps[socket.nsp])\n    }\n\n    private func setUpSockets() {\n        socket = manager.testSocket(forNamespace: \"/\")\n        socket2 = manager.testSocket(forNamespace: \"/swift\")\n    }\n\n    private var manager: TestManager!\n    private var socket: TestSocket!\n    private var socket2: TestSocket!\n\n    override func setUp() {\n        super.setUp()\n\n        manager = TestManager(socketURL: URL(string: \"http://localhost/\")!, config: [.log(false)])\n        socket = nil\n        socket2 = nil\n    }\n}\n\npublic enum ManagerExpectation: String {\n    case didConnectCalled\n    case didDisconnectCalled\n    case emitAllEventCalled\n}\n\npublic class TestManager: SocketManager {\n    public override func disconnect() {\n        setTestStatus(.disconnected)\n    }\n\n    public func testSocket(forNamespace nsp: String) -> TestSocket {\n        return socket(forNamespace: nsp) as! TestSocket\n    }\n\n    public func fakeDisconnecting() {\n        engineDidClose(reason: \"\")\n    }\n\n    public func fakeConnecting(toNamespace nsp: String = \"/\") {\n        DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {\n            // Fake connecting\n            self.parseEngineMessage(\"0\\(nsp)\")\n        }\n    }\n\n    public override func socket(forNamespace nsp: String) -> SocketIOClient {\n        // set socket to our test socket, the superclass method will get this from nsps\n        nsps[nsp] = TestSocket(manager: self, nsp: nsp)\n\n        return super.socket(forNamespace: nsp)\n    }\n}\n\npublic class TestSocket: SocketIOClient {\n    public var expectations = [ManagerExpectation: XCTestExpectation]()\n\n    public override func didConnect(toNamespace nsp: String, payload: [String: Any]?) {\n        expectations[ManagerExpectation.didConnectCalled]?.fulfill()\n        expectations[ManagerExpectation.didConnectCalled] = nil\n\n        super.didConnect(toNamespace: nsp, payload: payload)\n    }\n\n    public override func didDisconnect(reason: String) {\n        expectations[ManagerExpectation.didDisconnectCalled]?.fulfill()\n        expectations[ManagerExpectation.didDisconnectCalled] = nil\n\n        super.didDisconnect(reason: reason)\n    }\n\n    public override func emit(_ event: String, _ items: SocketData..., completion: (() -> ())? = nil) {\n        expectations[ManagerExpectation.emitAllEventCalled]?.fulfill()\n        expectations[ManagerExpectation.emitAllEventCalled] = nil\n    }\n}\n"
  },
  {
    "path": "Tests/TestSocketIO/SocketNamespacePacketTest.swift",
    "content": "//\n//  SocketNamespacePacketTest.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 10/11/15.\n//\n//\n\nimport XCTest\n@testable import SocketIO\n\nclass SocketNamespacePacketTest : XCTestCase {\n    func testEmptyEmit() {\n        let sendData: [Any] = [\"test\"]\n        let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/swift\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testNullEmit() {\n        let sendData: [Any] = [\"test\", NSNull()]\n        let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/swift\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testStringEmit() {\n        let sendData: [Any] = [\"test\", \"foo bar\"]\n        let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/swift\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testJSONEmit() {\n        let sendData: [Any] = [\"test\", [\"foobar\": true, \"hello\": 1, \"test\": \"hello\", \"null\": NSNull()] as NSDictionary]\n        let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/swift\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testArrayEmit() {\n        let sendData: [Any] = [\"test\", [\"hello\", 1, [\"test\": \"test\"], true]]\n        let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/swift\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testBinaryEmit() {\n        let sendData: [Any] = [\"test\", data]\n        let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/swift\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .binaryEvent)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertEqual(packet.binary, [data])\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: [\n            \"test\",\n            [\"_placeholder\": true, \"num\": 0]\n        ]))\n    }\n\n    func testMultipleBinaryEmit() {\n        let sendData: [Any] = [\"test\", [\"data1\": data, \"data2\": data2] as NSDictionary]\n        let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: \"/swift\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .binaryEvent)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n\n        let binaryObj = parsed.data[1] as! [String: Any]\n        let data1Loc = (binaryObj[\"data1\"] as! [String: Any])[\"num\"] as! Int\n        let data2Loc = (binaryObj[\"data2\"] as! [String: Any])[\"num\"] as! Int\n\n        XCTAssertEqual(packet.binary[data1Loc], data)\n        XCTAssertEqual(packet.binary[data2Loc], data2)\n    }\n\n    func testEmitWithAck() {\n        let sendData = [\"test\"]\n        let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/swift\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .event)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testEmitDataWithAck() {\n        let sendData: [Any] = [\"test\", data]\n        let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/swift\", ack: false)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .binaryEvent)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: [\n            \"test\",\n            [\"_placeholder\": true, \"num\": 0]\n        ]))\n    }\n\n    // Acks\n    func testEmptyAck() {\n        let packet = SocketPacket.packetFromEmit([], id: 0, nsp: \"/swift\", ack: true)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .ack)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertEqual(parsed.id, 0)\n    }\n\n    func testNullAck() {\n        let sendData = [NSNull()]\n        let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/swift\", ack: true)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .ack)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testStringAck() {\n        let sendData = [\"test\"]\n        let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/swift\", ack: true)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .ack)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testJSONAck() {\n        let sendData = [[\"foobar\": true, \"hello\": 1, \"test\": \"hello\", \"null\": NSNull()]]\n        let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/swift\", ack: true)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .ack)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: sendData))\n    }\n\n    func testBinaryAck() {\n        let sendData = [data]\n        let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/swift\", ack: true)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .binaryAck)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertEqual(parsed.id, 0)\n        XCTAssertTrue(compareAnyArray(input: parsed.data, expected: [\n            [\"_placeholder\": true, \"num\": 0]\n        ]))\n    }\n\n    func testMultipleBinaryAck() {\n        let sendData = [[\"data1\": data, \"data2\": data2]]\n        let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: \"/swift\", ack: true)\n        let parsed = parser.parseSocketMessage(packet.packetString)!\n\n        XCTAssertEqual(parsed.type, .binaryAck)\n        XCTAssertEqual(parsed.nsp, \"/swift\")\n        XCTAssertEqual(parsed.id, 0)\n\n        let binaryObj = parsed.data[0] as! [String: Any]\n        let data1Loc = (binaryObj[\"data1\"] as! [String: Any])[\"num\"] as! Int\n        let data2Loc = (binaryObj[\"data2\"] as! [String: Any])[\"num\"] as! Int\n\n        XCTAssertEqual(packet.binary[data1Loc], data)\n        XCTAssertEqual(packet.binary[data2Loc], data2)\n    }\n\n    let data = \"test\".data(using: String.Encoding.utf8)!\n    let data2 = \"test2\".data(using: String.Encoding.utf8)!\n    var parser: SocketParsable!\n\n    private func compareAnyArray(input: [Any], expected: [Any]) -> Bool {\n        guard input.count == expected.count else { return false }\n\n        return (input as NSArray).isEqual(to: expected)\n    }\n\n    override func setUp() {\n        super.setUp()\n\n        parser = SocketManager(socketURL: URL(string: \"http://localhost\")!)\n    }\n}\n"
  },
  {
    "path": "Tests/TestSocketIO/SocketParserTest.swift",
    "content": "//\n//  SocketParserTest.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Lukas Schmidt on 05.09.15.\n//\n//\n\nimport XCTest\n@testable import SocketIO\n\nclass SocketParserTest: XCTestCase {\n    func testDisconnect() {\n        let message = \"1\"\n        validateParseResult(message)\n    }\n\n    func testConnect() {\n        let message = \"0\"\n        validateParseResult(message)\n    }\n\n    func testDisconnectNameSpace() {\n        let message = \"1/swift\"\n        validateParseResult(message)\n    }\n\n    func testConnecttNameSpace() {\n        let message = \"0/swift\"\n        validateParseResult(message)\n    }\n\n    func testIdEvent() {\n        let message = \"25[\\\"test\\\"]\"\n        validateParseResult(message)\n    }\n\n    func testBinaryPlaceholderAsString() {\n        let message = \"2[\\\"test\\\",\\\"~~0\\\"]\"\n        validateParseResult(message)\n    }\n\n    func testNameSpaceArrayParse() {\n        let message = \"2/swift,[\\\"testArrayEmitReturn\\\",[\\\"test3\\\",\\\"test4\\\"]]\"\n        validateParseResult(message)\n    }\n\n    func testNameSpaceArrayAckParse() {\n        let message = \"3/swift,0[[\\\"test3\\\",\\\"test4\\\"]]\"\n        validateParseResult(message)\n    }\n\n    func testNameSpaceBinaryEventParse() {\n        let message = \"51-/swift,[\\\"testMultipleItemsWithBufferEmitReturn\\\",[1,2],{\\\"test\\\":\\\"bob\\\"},25,\\\"polo\\\",{\\\"_placeholder\\\":true,\\\"num\\\":0}]\"\n        validateParseResult(message)\n    }\n\n    func testNameSpaceBinaryAckParse() {\n        let message = \"61-/swift,19[[1,2],{\\\"test\\\":\\\"bob\\\"},25,\\\"polo\\\",{\\\"_placeholder\\\":true,\\\"num\\\":0}]\"\n        validateParseResult(message)\n    }\n\n    func testNamespaceErrorParse() {\n        let message = \"4/swift,\"\n        validateParseResult(message)\n    }\n\n    func testErrorTypeString() {\n        let message = \"4\\\"ERROR\\\"\"\n        validateParseResult(message)\n    }\n\n    func testErrorTypeDictionary() {\n        let message = \"4{\\\"test\\\":2}\"\n        validateParseResult(message)\n    }\n\n    func testErrorTypeInt() {\n        let message = \"41\"\n        validateParseResult(message)\n    }\n\n    func testErrorTypeArray() {\n        let message = \"4[1, \\\"hello\\\"]\"\n        validateParseResult(message)\n    }\n\n    func testInvalidInput() {\n        let message = \"8\"\n        do {\n            let _ = try testManager.parseString(message)\n            XCTFail()\n        } catch {\n\n        }\n    }\n\n    func testGenericParser() {\n        var parser = SocketStringReader(message: \"61-/swift,\")\n        XCTAssertEqual(parser.read(count: 1), \"6\")\n        XCTAssertEqual(parser.currentCharacter, \"1\")\n        XCTAssertEqual(parser.readUntilOccurence(of: \"-\"), \"1\")\n        XCTAssertEqual(parser.currentCharacter, \"/\")\n    }\n\n    func validateParseResult(_ message: String) {\n        let validValues = SocketParserTest.packetTypes[message]!\n        let packet = try! testManager.parseString(message)\n        let type = String(message.prefix(1))\n\n        XCTAssertEqual(packet.type, SocketPacket.PacketType(rawValue: Int(type) ?? -1)!)\n        XCTAssertEqual(packet.nsp, validValues.0)\n        XCTAssertTrue((packet.data as NSArray).isEqual(to: validValues.1), \"\\(packet.data)\")\n        XCTAssertTrue((packet.binary as NSArray).isEqual(to: validValues.2), \"\\(packet.binary)\")\n        XCTAssertEqual(packet.id, validValues.3)\n    }\n\n    func testParsePerformance() {\n        let keys = Array(SocketParserTest.packetTypes.keys)\n        measure {\n            for item in keys.enumerated() {\n                _ = try! self.testManager.parseString(item.element)\n            }\n        }\n    }\n\n    let testManager = SocketManager(socketURL: URL(string: \"http://localhost/\")!)\n\n    //Format key: message; namespace-data-binary-id\n    static let packetTypes: [String: (String, [Any], [Data], Int)] = [\n        \"0\": (\"/\", [], [], -1), \"1\": (\"/\", [], [], -1),\n        \"25[\\\"test\\\"]\": (\"/\", [\"test\"], [], 5),\n        \"2[\\\"test\\\",\\\"~~0\\\"]\": (\"/\", [\"test\", \"~~0\"], [], -1),\n        \"2/swift,[\\\"testArrayEmitReturn\\\",[\\\"test3\\\",\\\"test4\\\"]]\": (\"/swift\", [\"testArrayEmitReturn\", [\"test3\", \"test4\"] as NSArray], [], -1),\n        \"51-/swift,[\\\"testMultipleItemsWithBufferEmitReturn\\\",[1,2],{\\\"test\\\":\\\"bob\\\"},25,\\\"polo\\\",{\\\"_placeholder\\\":true,\\\"num\\\":0}]\": (\"/swift\", [\"testMultipleItemsWithBufferEmitReturn\", [1, 2] as NSArray, [\"test\": \"bob\"] as NSDictionary, 25, \"polo\", [\"_placeholder\": true, \"num\": 0] as NSDictionary], [], -1),\n        \"3/swift,0[[\\\"test3\\\",\\\"test4\\\"]]\": (\"/swift\", [[\"test3\", \"test4\"] as NSArray], [], 0),\n        \"61-/swift,19[[1,2],{\\\"test\\\":\\\"bob\\\"},25,\\\"polo\\\",{\\\"_placeholder\\\":true,\\\"num\\\":0}]\":\n        (\"/swift\", [ [1, 2] as NSArray, [\"test\": \"bob\"] as NSDictionary, 25, \"polo\", [\"_placeholder\": true, \"num\": 0] as NSDictionary], [], 19),\n        \"4/swift,\": (\"/swift\", [], [], -1),\n        \"0/swift\": (\"/swift\", [], [], -1),\n        \"1/swift\": (\"/swift\", [], [], -1),\n        \"4\\\"ERROR\\\"\": (\"/\", [\"ERROR\"], [], -1),\n        \"4{\\\"test\\\":2}\": (\"/\", [[\"test\": 2]], [], -1),\n        \"41\": (\"/\", [1], [], -1),\n        \"4[1, \\\"hello\\\"]\": (\"/\", [1, \"hello\"], [], -1)\n    ]\n}\n"
  },
  {
    "path": "Tests/TestSocketIO/SocketSideEffectTest.swift",
    "content": "//\n//  SocketSideEffectTest.swift\n//  Socket.IO-Client-Swift\n//\n//  Created by Erik Little on 10/11/15.\n//\n//\n\nimport XCTest\n@testable import SocketIO\nimport Starscream\n\nclass SocketSideEffectTest: XCTestCase {\n    func testInitialCurrentAck() {\n        XCTAssertEqual(socket.currentAck, -1)\n    }\n\n    func testFirstAck() {\n        socket.emitWithAck(\"test\").timingOut(after: 0) {data in}\n        XCTAssertEqual(socket.currentAck, 0)\n    }\n\n    func testSecondAck() {\n        socket.emitWithAck(\"test\").timingOut(after: 0) {data in}\n        socket.emitWithAck(\"test\").timingOut(after: 0) {data in}\n\n        XCTAssertEqual(socket.currentAck, 1)\n    }\n\n    func testEmitCompletionSyntax() {\n        socket.emit(\"test\", completion: {})\n        socket.emit(\"test\", \"thing\", completion: {})\n    }\n\n    func testHandleAck() {\n        let expect = expectation(description: \"handled ack\")\n        socket.emitWithAck(\"test\").timingOut(after: 0) {data in\n            XCTAssertEqual(data[0] as? String, \"hello world\")\n            expect.fulfill()\n        }\n\n        manager.parseEngineMessage(\"30[\\\"hello world\\\"]\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testHandleAckWithAckEmit() {\n        let expect = expectation(description: \"handled ack\")\n        socket.emitWithAck(\"test\").timingOut(after: 0) {data in\n            XCTAssertEqual(data[0] as? String, \"hello world\")\n\n            self.socket.emitWithAck(\"test\").timingOut(after: 0) {data in}\n            expect.fulfill()\n        }\n\n        manager.parseEngineMessage(\"30[\\\"hello world\\\"]\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testHandleAck2() {\n        let expect = expectation(description: \"handled ack2\")\n        socket.emitWithAck(\"test\").timingOut(after: 0) {data in\n            XCTAssertTrue(data.count == 2, \"Wrong number of ack items\")\n            expect.fulfill()\n        }\n\n        manager.parseEngineMessage(\"61-0[{\\\"_placeholder\\\":true,\\\"num\\\":0},{\\\"test\\\":true}]\")\n        manager.parseEngineBinaryData(Data())\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testHandleEvent() {\n        let expect = expectation(description: \"handled event\")\n        socket.on(\"test\") {data, ack in\n            XCTAssertEqual(data[0] as? String, \"hello world\")\n            expect.fulfill()\n        }\n\n        manager.parseEngineMessage(\"2[\\\"test\\\",\\\"hello world\\\"]\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testHandleStringEventWithQuotes() {\n        let expect = expectation(description: \"handled event\")\n        socket.on(\"test\") {data, ack in\n            XCTAssertEqual(data[0] as? String, \"\\\"hello world\\\"\")\n            expect.fulfill()\n        }\n\n        manager.parseEngineMessage(\"2[\\\"test\\\",\\\"\\\\\\\"hello world\\\\\\\"\\\"]\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testHandleOnceEvent() {\n        let expect = expectation(description: \"handled event\")\n        socket.once(\"test\") {data, ack in\n            XCTAssertEqual(data[0] as? String, \"hello world\")\n            XCTAssertEqual(self.socket.testHandlers.count, 0)\n            expect.fulfill()\n        }\n\n        manager.parseEngineMessage(\"2[\\\"test\\\",\\\"hello world\\\"]\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testHandleOnceClientEvent() {\n        let expect = expectation(description: \"handled event\")\n\n        socket.setTestStatus(.connecting)\n\n        socket.once(clientEvent: .connect) {data, ack in\n            XCTAssertEqual(self.socket.testHandlers.count, 0)\n            expect.fulfill()\n        }\n\n        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) {\n            // Fake connecting\n            self.manager.parseEngineMessage(\"0/\")\n        }\n\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testOffWithEvent() {\n        socket.on(\"test\") {data, ack in }\n        socket.on(\"test\") {data, ack in }\n        XCTAssertEqual(socket.testHandlers.count, 2)\n        socket.off(\"test\")\n        XCTAssertEqual(socket.testHandlers.count, 0)\n    }\n\n    func testOffClientEvent() {\n        socket.on(clientEvent: .connect) {data, ack in }\n        socket.on(clientEvent: .disconnect) {data, ack in }\n        XCTAssertEqual(socket.testHandlers.count, 2)\n        socket.off(clientEvent: .disconnect)\n        XCTAssertEqual(socket.testHandlers.count, 1)\n        XCTAssertTrue(socket.testHandlers.contains(where: { $0.event == \"connect\" }))\n    }\n\n    func testOffWithId() {\n        let handler = socket.on(\"test\") {data, ack in }\n        XCTAssertEqual(socket.testHandlers.count, 1)\n        socket.on(\"test\") {data, ack in }\n        XCTAssertEqual(socket.testHandlers.count, 2)\n        socket.off(id: handler)\n        XCTAssertEqual(socket.testHandlers.count, 1)\n    }\n\n    func testHandlesErrorPacket() {\n        let expect = expectation(description: \"Handled error\")\n        socket.on(\"error\") {data, ack in\n            if let error = data[0] as? String, error == \"test error\" {\n                expect.fulfill()\n            }\n        }\n\n        manager.parseEngineMessage(\"4\\\"test error\\\"\")\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testHandleBinaryEvent() {\n        let expect = expectation(description: \"handled binary event\")\n        socket.on(\"test\") {data, ack in\n            if let dict = data[0] as? [String: Any], let data = dict[\"test\"] as? Data {\n                XCTAssertEqual(data as Data, self.data)\n                expect.fulfill()\n            }\n        }\n\n        manager.parseEngineMessage(\"51-[\\\"test\\\",{\\\"test\\\":{\\\"_placeholder\\\":true,\\\"num\\\":0}}]\")\n        manager.parseEngineBinaryData(data)\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testHandleMultipleBinaryEvent() {\n        let expect = expectation(description: \"handled multiple binary event\")\n        socket.on(\"test\") {data, ack in\n            if let dict = data[0] as? [String: Any], let data = dict[\"test\"] as? Data,\n               let data2 = dict[\"test2\"] as? Data {\n                XCTAssertEqual(data as Data, self.data)\n                XCTAssertEqual(data2 as Data, self.data2)\n                expect.fulfill()\n            }\n        }\n\n        manager.parseEngineMessage(\"52-[\\\"test\\\",{\\\"test\\\":{\\\"_placeholder\\\":true,\\\"num\\\":0},\\\"test2\\\":{\\\"_placeholder\\\":true,\\\"num\\\":1}}]\")\n        manager.parseEngineBinaryData(data)\n        manager.parseEngineBinaryData(data2)\n        waitForExpectations(timeout: 3, handler: nil)\n    }\n\n    func testChangingStatusCallsStatusChangeHandler() {\n        let expect = expectation(description: \"The client should announce when the status changes\")\n        let statusChange = SocketIOStatus.connecting\n\n        socket.on(\"statusChange\") {data, ack in\n            guard let status = data[0] as? SocketIOStatus else {\n                XCTFail(\"Status should be one of the defined statuses\")\n\n                return\n            }\n\n            XCTAssertEqual(status, statusChange, \"The status changed should be the one set\")\n\n            expect.fulfill()\n        }\n\n        socket.setTestStatus(statusChange)\n\n        waitForExpectations(timeout: 0.2)\n    }\n\n    func testOnClientEvent() {\n        let expect = expectation(description: \"The client should call client event handlers\")\n        let event = SocketClientEvent.disconnect\n        let closeReason = \"testing\"\n\n        socket.on(clientEvent: event) {data, ack in\n            guard let reason = data[0] as? String else {\n                XCTFail(\"Client should pass data for client events\")\n\n                return\n            }\n\n            XCTAssertEqual(closeReason, reason, \"The data should be what was sent to handleClientEvent\")\n\n            expect.fulfill()\n        }\n\n        socket.handleClientEvent(event, data: [closeReason])\n\n        waitForExpectations(timeout: 0.2)\n    }\n\n    func testClientEventsAreBackwardsCompatible() {\n        let expect = expectation(description: \"The client should call old style client event handlers\")\n        let event = SocketClientEvent.disconnect\n        let closeReason = \"testing\"\n\n        socket.on(\"disconnect\") {data, ack in\n            guard let reason = data[0] as? String else {\n                XCTFail(\"Client should pass data for client events\")\n\n                return\n            }\n\n            XCTAssertEqual(closeReason, reason, \"The data should be what was sent to handleClientEvent\")\n\n            expect.fulfill()\n        }\n\n        socket.handleClientEvent(event, data: [closeReason])\n\n        waitForExpectations(timeout: 0.2)\n    }\n\n    func testConnectTimesOutIfNotConnected() {\n        let expect = expectation(description: \"The client should call the timeout function\")\n\n        socket = manager.socket(forNamespace: \"/someNamespace\")\n        socket.setTestStatus(.notConnected)\n        manager.engine = TestEngine(client: manager, url: manager.socketURL, options: nil)\n\n        socket.connect(timeoutAfter: 0.5, withHandler: {\n            expect.fulfill()\n        })\n\n        waitForExpectations(timeout: 0.8)\n    }\n\n    func testConnectDoesNotTimeOutIfConnected() {\n        let expect = expectation(description: \"The client should not call the timeout function\")\n\n        socket.setTestStatus(.notConnected)\n        manager.engine = TestEngine(client: manager, url: manager.socketURL, options: nil)\n\n        socket.on(clientEvent: .connect) {data, ack in\n            expect.fulfill()\n        }\n\n        socket.connect(timeoutAfter: 0.5, withHandler: {\n            XCTFail(\"Should not call timeout handler if status is connected\")\n        })\n\n        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) {\n            // Fake connecting\n            self.manager.parseEngineMessage(\"0/\")\n        }\n\n        waitForExpectations(timeout: 2)\n    }\n\n    func testClientCallsConnectOnEngineOpen() {\n        let expect = expectation(description: \"The client call the connect handler\")\n        let eng = TestEngine(client: manager, url: manager.socketURL, options: nil)\n\n        eng.onConnect = {\n            self.socket.didConnect(toNamespace: self.socket.nsp, payload: nil)\n        }\n\n        manager.engine = eng\n        socket.setTestStatus(.notConnected)\n\n        socket.on(clientEvent: .connect) {data, ack in\n            expect.fulfill()\n        }\n\n        socket.connect(timeoutAfter: 0.5, withHandler: {\n            XCTFail(\"Should not call timeout handler if status is connected\")\n        })\n\n        waitForExpectations(timeout: 2)\n    }\n\n    func testConnectIsCalledWithNamespace() {\n        let expect = expectation(description: \"The client should not call the timeout function\")\n        let nspString = \"/swift\"\n\n        socket = manager.socket(forNamespace: \"/swift\")\n        socket.setTestStatus(.notConnected)\n        manager.engine = TestEngine(client: manager, url: manager.socketURL, options: nil)\n\n        socket.on(clientEvent: .connect) {data, ack in\n            guard let nsp = data[0] as? String else {\n                XCTFail(\"Connect should be called with a namespace\")\n\n                return\n            }\n\n            XCTAssertEqual(nspString, nsp, \"It should connect with the correct namespace\")\n\n            expect.fulfill()\n        }\n\n        socket.connect(timeoutAfter: 0.3, withHandler: {\n            XCTFail(\"Should not call timeout handler if status is connected\")\n        })\n\n        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) {\n            // Fake connecting\n            self.manager.parseEngineMessage(\"0/swift\")\n        }\n\n        waitForExpectations(timeout: 2)\n    }\n\n    func testErrorInCustomSocketDataCallsErrorHandler() {\n        let expect = expectation(description: \"The client should call the error handler for emit errors because of \" +\n                                              \"custom data\")\n\n        socket.on(clientEvent: .error) {data, ack in\n            guard data.count == 3, data[0] as? String == \"myEvent\",\n                  data[2] is ThrowingData.ThrowingError else {\n                XCTFail(\"Incorrect error call\")\n\n                return\n            }\n\n            expect.fulfill()\n        }\n\n        socket.emit(\"myEvent\", ThrowingData())\n\n        waitForExpectations(timeout: 0.2)\n    }\n\n    func testErrorInCustomSocketDataCallsErrorHandler_ack() {\n        let expect = expectation(description: \"The client should call the error handler for emit errors because of \" +\n                                              \"custom data\")\n\n        socket.on(clientEvent: .error) {data, ack in\n            guard data.count == 3, data[0] as? String == \"myEvent\",\n                  data[2] is ThrowingData.ThrowingError else {\n                XCTFail(\"Incorrect error call\")\n\n                return\n            }\n\n            expect.fulfill()\n        }\n\n        socket.emitWithAck(\"myEvent\", ThrowingData()).timingOut(after: 0.8, callback: {_ in\n            XCTFail(\"Ack callback should not be called\")\n        })\n\n        waitForExpectations(timeout: 0.2)\n    }\n\n    func testSettingConfigAfterInit() {\n        socket.setTestStatus(.notConnected)\n        manager.config.insert(.log(true))\n\n        XCTAssertTrue(DefaultSocketLogger.Logger.log, \"It should set logging to true after creation\")\n\n        manager.config = [.log(false)]\n\n        XCTAssertFalse(DefaultSocketLogger.Logger.log, \"It should set logging to false after creation\")\n    }\n\n    func testSettingConfigAfterDisconnect() {\n        socket.setTestStatus(.disconnected)\n        manager.config.insert(.log(true))\n\n        XCTAssertTrue(DefaultSocketLogger.Logger.log, \"It should set logging to true after creation\")\n\n        manager.config = [.log(false)]\n\n        XCTAssertFalse(DefaultSocketLogger.Logger.log, \"It should set logging to false after creation\")\n    }\n\n    func testSettingConfigAfterInitWhenConnectedDoesNotIgnoreChanges() {\n        manager.setTestStatus(.connected)\n        manager.config = [.log(true)]\n\n        XCTAssertTrue(DefaultSocketLogger.Logger.log, \"It should set logging to false after creation\")\n    }\n\n    func testClientCallsSentPingHandler() {\n        let expect = expectation(description: \"The client should emit a ping event\")\n\n        socket.on(clientEvent: .pong) {data, ack in\n            expect.fulfill()\n        }\n\n        manager.engineDidSendPong()\n\n        waitForExpectations(timeout: 0.2)\n    }\n\n    func testClientCallsGotPongHandler() {\n        let expect = expectation(description: \"The client should emit a pong event\")\n\n        socket.on(clientEvent: .ping) {data, ack in\n            expect.fulfill()\n        }\n\n        manager.engineDidReceivePing()\n\n        waitForExpectations(timeout: 0.2)\n    }\n\n    let data = \"test\".data(using: String.Encoding.utf8)!\n    let data2 = \"test2\".data(using: String.Encoding.utf8)!\n\n    private var manager: SocketManager!\n    private var socket: SocketIOClient!\n\n    override func setUp() {\n        super.setUp()\n\n        manager = SocketManager(socketURL: URL(string: \"http://localhost/\")!, config: [.log(false)])\n        socket = manager.defaultSocket\n        socket.setTestable()\n    }\n}\n\nstruct ThrowingData: SocketData {\n    enum ThrowingError : Error {\n        case error\n    }\n\n    func socketRepresentation() throws -> SocketData {\n        throw ThrowingError.error\n    }\n\n}\n\nclass TestEngine: SocketEngineSpec {\n    weak var client: SocketEngineClient?\n    private(set) var closed = false\n    private(set) var compress = false\n    private(set) var connected = false\n    var connectParams: [String: Any]? = nil\n    private(set) var cookies: [HTTPCookie]? = nil\n    private(set) var engineQueue = DispatchQueue.main\n    var extraHeaders: [String: String]? = nil\n    private(set) var fastUpgrade = false\n    private(set) var forcePolling = false\n    private(set) var forceWebsockets = false\n    private(set) var polling = false\n    private(set) var probing = false\n    private(set) var sid = \"\"\n    private(set) var socketPath = \"\"\n    private(set) var urlPolling = URL(string: \"http://localhost/\")!\n    private(set) var urlWebSocket = URL(string: \"http://localhost/\")!\n    private(set) var websocket = false\n    private(set) var ws: WebSocket? = nil\n    private(set) var version = SocketIOVersion.three\n\n    fileprivate var onConnect: (() -> ())?\n\n    required init(client: SocketEngineClient, url: URL, options: [String: Any]?) {\n        self.client = client\n    }\n\n    func connect() {\n        onConnect?()\n    }\n\n    func didError(reason: String) { }\n    func disconnect(reason: String) { }\n    func doFastUpgrade() { }\n    func flushWaitingForPostToWebSocket() { }\n    func parseEngineData(_ data: Data) { }\n    func parseEngineMessage(_ message: String) { }\n    func write(_ msg: String, withType type: SocketEnginePacketType, withData data: [Data], completion: (() -> ())?) { }\n}\n"
  },
  {
    "path": "Tests/TestSocketIO/utils.swift",
    "content": "//\n// Created by Erik Little on 2019-01-11.\n//\n\nimport Foundation\n@testable import SocketIO\n\npublic class OBjcUtils: NSObject {\n    @objc\n    public static func setTestStatus(socket: SocketIOClient, status: SocketIOStatus) {\n        socket.setTestStatus(status)\n    }\n}\n"
  },
  {
    "path": "Usage Docs/12to13.md",
    "content": "# Upgrading from v12\n\nThis guide will help you navigate the changes that were introduced in v13.\n\n## What are the big changes?\n\nThe biggest change is how to create and manage clients. Much like the native JS client and server,\nthe swift client now only uses one engine per connection. Previously in order to use namespaces it was required\nto create multiple clients, and each client had its own engine.\n\nSome v12 code might've looked like this:\n\n```swift\nlet defaultSocket = SocketIOClient(socketURL: myURL)\nlet namespaceSocket = SocketIOClient(socketURL: myURL, config: [.nsp(\"/swift\")])\n\n// add handlers for sockets and connect\n\n``` \n\nIn v12 this would have opened two connections to the socket.io.\n\n\nIn v13 the same code would look like this:\n\n```swift\nlet manager = SocketManager(socketURL: myURL)\nlet defaultSocket = manager.defaultSocket\nlet namespaceSocket = manager.socket(forNamespace: \"/swift\")\n\n// add handlers for sockets and connect\n```\n\nIn v13 `defaultSocket` and `namespaceSocket` will share a single transport. This means one less connection to the server\nneeds to be opened. \n\n## What might I have to change?\n\n- The most obvious thing you will need to change is that instead of creating `SocketIOClient`s directly, you will create a\n`SocketManager` and either use the `defaultSocket` property if you don't need namespaces, or call the \n`socket(forNamespace:)` method on the manager.\n\n- `SocketIOClient` is no longer a client to an engine. So if you were overriding the engine methods, these have been moved \nto the manager. \n\n- The library is now a single target. So you might have to change some of your Xcode project settings.\n\n- `SocketIOClient`s no longer take a configuration, they are shared from the manager.\n\n- The `joinNamespace()` and `leaveNamespace()` methods on `SocketIOClient` no longer take any arguments, and in most cases\nno longer need to be called. Namespace joining/leaving can be managed by calling `connect()`/`disconnect()` on the socket\nassociated with that namespace.\n\n----------\n\n# What things should I know?\n\nHow sockets are stored\n---\n\nYou should know that `SocketIOClient`s no longer need to be held around in properties, but the `SocketManager` should.\n\nOne of the most common mistakes people made is not maintaining a strong reference to the client.\n\n```swift\nclass Manager {\n    func addHandlers() {\n        let socket = SocketIOClient(socketURL: myURL, config: [.nsp(\"/swift\")])\n        \n        // Add handlers\n    }\n}\n```\n\nThis would have resulted in the client being released and no handlers being called.\n\nA *correct* equivalent would be:\n\n```swift\nclass Manager {\n    let socketManager = SocketManager(socketURL: someURL)\n    \n    func addHandlers() {\n        let socket = socketManager.socket(forNamespace: \"/swift\")\n        \n        // Add handlers\n    }\n}\n```\n\nThis code is fine because the `SocketManager` will maintain a strong reference to the socket.\n\nIt's also worth noting that subsequent calls to `socket(forNamespace:)` will return the *same* socket instance as the \nfirst call. So you don't need to hold onto the socket directly just to access it again, just call `socket(forNamespace:)`\non the manager to get it. **This does mean that if you need multiple sockets on the same namespace, you will have to use\nmultiple managers.**\n\nWhat to call connect on\n---\n\nConnect can either be called on the manager directly, or on one of the sockets made from it. In either case, if the manager\nwas not already connected to the server, a connection will be made. Also in both cases the default socket (namespace \"/\")\nwill fire a `connect` event. \n\nThe difference is that if `connect()` is just called on the manager, then any sockets for that manager that are not the default\nsocket will not automatically connect. `connect()` will need to be called individually for each socket. However, if `connect()`\nis called on a client, then in addition to opening the connection if needed, the client will connect to its namespace,\nand a `connect` event fired.\n\n"
  },
  {
    "path": "Usage Docs/15to16.md",
    "content": "# Upgrading from v15 to v16\n\nThis guide will help you navigate the changes that were introduced in v16.\n\n## Objective-c is no longer supported. You must now use Swift.\n\n## Client supports multiple socket.io versions\n\nThe client now supports socket.io 3 servers. This is mostly a transparent change, however if your sever\nis socket.io 2, you must send `.version(.two)` as an option to the manager.\n\n```swift\nSocketManager(socketURL: URL(string:\"http://localhost:8087/\")!, config: [.version(.two)])\n```\n\n\n"
  },
  {
    "path": "Usage Docs/FAQ.md",
    "content": "## How do I connect to my WebSocket server?\n\nThis library is **NOT** a WebSockets library. This library is only for servers that implement the socket.io protocol, \nsuch as [socket.io](https://socket.io/). If you need a plain WebSockets client check out \n[Starscream](https://github.com/daltoniam/Starscream) for Swift and [JetFire](https://github.com/acmacalister/jetfire)\nfor Objective-C.\n\n## Why isn't my event handler being called?\n\nOne of the most common reasons your event might not be called is if the client is released by \n[ARC](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html).\n\nTake this code for example:\n\n```swift\nclass Manager {\n    func addHandlers() {\n        let manager = SocketManager(socketURL: URL(string: \"http://somesocketioserver.com\")!)\n        \n        manager.defaultSocket.on(\"myEvent\") {data, ack in\n            print(data)\n        }\n    }\n\n}\n```\n\nThis code is **incorrect**, and the event handler will never be called. Because as soon as this method is called `manager`\nwill be released, along with the socket, and its memory reclaimed.\n\nA correct way would be:\n\n```swift\nclass Manager {\n    let manager = SocketManager(socketURL: URL(string: \"http://somesocketioserver.com\")!)\n    \n    func addHandlers() {\n        manager.defaultSocket.on(\"myEvent\") {data, ack in\n            print(data)\n        }\n    }\n}\n\n```\n"
  },
  {
    "path": "docs/12to13.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>12to13  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n\n    <a title=\"12to13  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      12to13  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            \n            <h1 id='upgrading-from-v12' class='heading'>Upgrading from v12</h1>\n\n<p>This guide will help you navigate the changes that were introduced in v13.</p>\n<h2 id='what-are-the-big-changes' class='heading'>What are the big changes?</h2>\n\n<p>The biggest change is how to create and manage clients. Much like the native JS client and server,\nthe swift client now only uses one engine per connection. Previously in order to use namespaces it was required\nto create multiple clients, and each client had its own engine.</p>\n\n<p>Some v12 code might&rsquo;ve looked like this:</p>\n<pre class=\"highlight swift\"><code><span class=\"k\">let</span> <span class=\"nv\">defaultSocket</span> <span class=\"o\">=</span> <span class=\"kt\">SocketIOClient</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"n\">myURL</span><span class=\"p\">)</span>\n<span class=\"k\">let</span> <span class=\"nv\">namespaceSocket</span> <span class=\"o\">=</span> <span class=\"kt\">SocketIOClient</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"n\">myURL</span><span class=\"p\">,</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"o\">.</span><span class=\"nf\">nsp</span><span class=\"p\">(</span><span class=\"s\">\"/swift\"</span><span class=\"p\">)])</span>\n\n<span class=\"c1\">// add handlers for sockets and connect</span>\n\n</code></pre>\n\n<p>In v12 this would have opened two connections to the socket.io.</p>\n\n<p>In v13 the same code would look like this:</p>\n<pre class=\"highlight swift\"><code><span class=\"k\">let</span> <span class=\"nv\">manager</span> <span class=\"o\">=</span> <span class=\"kt\">SocketManager</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"n\">myURL</span><span class=\"p\">)</span>\n<span class=\"k\">let</span> <span class=\"nv\">defaultSocket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"n\">defaultSocket</span>\n<span class=\"k\">let</span> <span class=\"nv\">namespaceSocket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"nf\">socket</span><span class=\"p\">(</span><span class=\"nv\">forNamespace</span><span class=\"p\">:</span> <span class=\"s\">\"/swift\"</span><span class=\"p\">)</span>\n\n<span class=\"c1\">// add handlers for sockets and connect</span>\n</code></pre>\n\n<p>In v13 <code>defaultSocket</code> and <code>namespaceSocket</code> will share a single transport. This means one less connection to the server\nneeds to be opened. </p>\n<h2 id='what-might-i-have-to-change' class='heading'>What might I have to change?</h2>\n\n<ul>\n<li><p>The most obvious thing you will need to change is that instead of creating <code><a href=\"Classes/SocketIOClient.html\">SocketIOClient</a></code>s directly, you will create a\n<code><a href=\"Classes/SocketManager.html\">SocketManager</a></code> and either use the <code>defaultSocket</code> property if you don&rsquo;t need namespaces, or call the \n<code>socket(forNamespace:)</code> method on the manager.</p></li>\n<li><p><code><a href=\"Classes/SocketIOClient.html\">SocketIOClient</a></code> is no longer a client to an engine. So if you were overriding the engine methods, these have been moved \nto the manager. </p></li>\n<li><p>The library is now a single target. So you might have to change some of your Xcode project settings.</p></li>\n<li><p><code><a href=\"Classes/SocketIOClient.html\">SocketIOClient</a></code>s no longer take a configuration, they are shared from the manager.</p></li>\n<li><p>The <code>joinNamespace()</code> and <code>leaveNamespace()</code> methods on <code><a href=\"Classes/SocketIOClient.html\">SocketIOClient</a></code> no longer take any arguments, and in most cases\nno longer need to be called. Namespace joining/leaving can be managed by calling <code>connect()</code>/<code>disconnect()</code> on the socket\nassociated with that namespace.</p></li>\n</ul>\n\n<hr>\n<h1 id='what-things-should-i-know' class='heading'>What things should I know?</h1>\n<h2 id='how-sockets-are-stored' class='heading'>How sockets are stored</h2>\n\n<p>You should know that <code><a href=\"Classes/SocketIOClient.html\">SocketIOClient</a></code>s no longer need to be held around in properties, but the <code><a href=\"Classes/SocketManager.html\">SocketManager</a></code> should.</p>\n\n<p>One of the most common mistakes people made is not maintaining a strong reference to the client.</p>\n<pre class=\"highlight swift\"><code><span class=\"kd\">class</span> <span class=\"kt\">Manager</span> <span class=\"p\">{</span>\n    <span class=\"kd\">func</span> <span class=\"nf\">addHandlers</span><span class=\"p\">()</span> <span class=\"p\">{</span>\n        <span class=\"k\">let</span> <span class=\"nv\">socket</span> <span class=\"o\">=</span> <span class=\"kt\">SocketIOClient</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"n\">myURL</span><span class=\"p\">,</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"o\">.</span><span class=\"nf\">nsp</span><span class=\"p\">(</span><span class=\"s\">\"/swift\"</span><span class=\"p\">)])</span>\n\n        <span class=\"c1\">// Add handlers</span>\n    <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n<p>This would have resulted in the client being released and no handlers being called.</p>\n\n<p>A <em>correct</em> equivalent would be:</p>\n<pre class=\"highlight swift\"><code><span class=\"kd\">class</span> <span class=\"kt\">Manager</span> <span class=\"p\">{</span>\n    <span class=\"k\">let</span> <span class=\"nv\">socketManager</span> <span class=\"o\">=</span> <span class=\"kt\">SocketManager</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"n\">someURL</span><span class=\"p\">)</span>\n\n    <span class=\"kd\">func</span> <span class=\"nf\">addHandlers</span><span class=\"p\">()</span> <span class=\"p\">{</span>\n        <span class=\"k\">let</span> <span class=\"nv\">socket</span> <span class=\"o\">=</span> <span class=\"n\">socketManager</span><span class=\"o\">.</span><span class=\"nf\">socket</span><span class=\"p\">(</span><span class=\"nv\">forNamespace</span><span class=\"p\">:</span> <span class=\"s\">\"/swift\"</span><span class=\"p\">)</span>\n\n        <span class=\"c1\">// Add handlers</span>\n    <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n<p>This code is fine because the <code><a href=\"Classes/SocketManager.html\">SocketManager</a></code> will maintain a strong reference to the socket.</p>\n\n<p>It&rsquo;s also worth noting that subsequent calls to <code>socket(forNamespace:)</code> will return the <em>same</em> socket instance as the \nfirst call. So you don&rsquo;t need to hold onto the socket directly just to access it again, just call <code>socket(forNamespace:)</code>\non the manager to get it. <strong>This does mean that if you need multiple sockets on the same namespace, you will have to use\nmultiple managers.</strong></p>\n<h2 id='what-to-call-connect-on' class='heading'>What to call connect on</h2>\n\n<p>Connect can either be called on the manager directly, or on one of the sockets made from it. In either case, if the manager\nwas not already connected to the server, a connection will be made. Also in both cases the default socket (namespace &ldquo;/&rdquo;)\nwill fire a <code>connect</code> event. </p>\n\n<p>The difference is that if <code>connect()</code> is just called on the manager, then any sockets for that manager that are not the default\nsocket will not automatically connect. <code>connect()</code> will need to be called individually for each socket. However, if <code>connect()</code>\nis called on a client, then in addition to opening the connection if needed, the client will connect to its namespace,\nand a <code>connect</code> event fired.</p>\n\n          </div>\n        </section>\n\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/15to16.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>15to16  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n\n    <a title=\"15to16  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      15to16  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            \n            <h1 id='upgrading-from-v15-to-v16' class='heading'>Upgrading from v15 to v16</h1>\n\n<p>This guide will help you navigate the changes that were introduced in v16.</p>\n<h2 id='objective-c-is-no-longer-supported-you-must-now-use-swift' class='heading'>Objective-c is no longer supported. You must now use Swift.</h2>\n<h2 id='client-supports-multiple-socket-io-versions' class='heading'>Client supports multiple socket.io versions</h2>\n\n<p>The client now supports socket.io 3 servers. This is mostly a transparent change, however if your sever\nis socket.io 2, you must send <code>.version(.two)</code> as an option to the manager.</p>\n<pre class=\"highlight swift\"><code><span class=\"kt\">SocketManager</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">(</span><span class=\"nv\">string</span><span class=\"p\">:</span><span class=\"s\">\"http://localhost:8087/\"</span><span class=\"p\">)</span><span class=\"o\">!</span><span class=\"p\">,</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"o\">.</span><span class=\"nf\">version</span><span class=\"p\">(</span><span class=\"o\">.</span><span class=\"n\">two</span><span class=\"p\">)])</span>\n</code></pre>\n\n          </div>\n        </section>\n\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes/OnAckCallback.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>OnAckCallback Class Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Class/OnAckCallback\" class=\"dashAnchor\"></a>\n\n    <a title=\"OnAckCallback Class Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      OnAckCallback Class Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>OnAckCallback</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">final</span> <span class=\"kd\">class</span> <span class=\"kt\">OnAckCallback</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>A class that represents an emit that will request an ack that has not yet been sent.\nCall <code>timingOut(after:callback:)</code> to complete the emit\nExample:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"nf\">timingOut</span><span class=\"p\">(</span><span class=\"nv\">after</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span> <span class=\"k\">in</span>\n    <span class=\"o\">...</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)OnAckCallback(im)timingOutAfter:callback:\"></a>\n                    <a name=\"//apple_ref/swift/Method/timingOut(after:callback:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)OnAckCallback(im)timingOutAfter:callback:\">timingOut(after:<wbr>callback:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Completes an emitWithAck. If this isn&rsquo;t called, the emit never happens.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">timingOut</span><span class=\"p\">(</span><span class=\"n\">after</span> <span class=\"nv\">seconds</span><span class=\"p\">:</span> <span class=\"kt\">Double</span><span class=\"p\">,</span> <span class=\"nv\">callback</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>seconds</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The number of seconds before this emit times out if an ack hasn&rsquo;t been received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>callback</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback called when an ack is received, or when a timeout happens.\n                  To check for timeout, use <code><a href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a></code>&lsquo;s <code>noAck</code> case.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes/SSLSecurity.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SSLSecurity Class Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Class/SSLSecurity\" class=\"dashAnchor\"></a>\n\n    <a title=\"SSLSecurity Class Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SSLSecurity Class Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SSLSecurity.html\">SSLSecurity</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <h1>SSLSecurity</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">class</span> <span class=\"kt\">SSLSecurity</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>A wrapper around Starscream&rsquo;s SSLSecurity that provides a minimal Objective-C interface.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <a href=\"#/Properties\">\n                  <h3 class=\"section-name\">Properties</h3>\n                </a>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO11SSLSecurityC8security10StarscreamABCvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/security\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO11SSLSecurityC8security10StarscreamABCvp\">security</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The internal Starscream SSLSecurity.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">security</span><span class=\"p\">:</span> <span class=\"kt\">Starscream</span><span class=\"o\">.</span><span class=\"kt\">SSLSecurity</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <a href=\"#/Methods\">\n                  <h3 class=\"section-name\">Methods</h3>\n                </a>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SSLSecurity(im)initWithUsePublicKeys:\"></a>\n                    <a name=\"//apple_ref/swift/Method/init(usePublicKeys:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SSLSecurity(im)initWithUsePublicKeys:\">init(usePublicKeys:)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Creates a new SSLSecurity that specifies whether to use publicKeys or certificates should be used for SSL\npinning validation</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"n\">convenience</span> <span class=\"nf\">init</span><span class=\"p\">(</span><span class=\"nv\">usePublicKeys</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"o\">=</span> <span class=\"kc\">true</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>usePublicKeys</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>is to specific if the publicKeys or certificates should be used for SSL pinning\nvalidation</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO11SSLSecurityC5certs13usePublicKeysACSay10Starscream7SSLCertCG_Sbtcfc\"></a>\n                    <a name=\"//apple_ref/swift/Method/init(certs:usePublicKeys:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO11SSLSecurityC5certs13usePublicKeysACSay10Starscream7SSLCertCG_Sbtcfc\">init(certs:usePublicKeys:)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Designated init</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"n\">convenience</span> <span class=\"nf\">init</span><span class=\"p\">(</span><span class=\"nv\">certs</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">SSLCert</span><span class=\"p\">],</span> <span class=\"nv\">usePublicKeys</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>certs</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>is the certificates or public keys to use</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>usePublicKeys</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>is to specific if the publicKeys or certificates should be used for SSL pinning\nvalidation</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>a representation security object to be used with</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO11SSLSecurityC7isValid_6domainSbSo11SecTrustRefa_SSSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/isValid(_:domain:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO11SSLSecurityC7isValid_6domainSbSo11SecTrustRefa_SSSgtF\">isValid(_:domain:)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Returns whether or not the given trust is valid.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">isValid</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">trust</span><span class=\"p\">:</span> <span class=\"kt\">SecTrust</span><span class=\"p\">,</span> <span class=\"nv\">domain</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">?)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">Bool</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>trust</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The trust to validate.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>domain</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The CN domain to validate.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>Whether or not this is valid.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2019 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2019-05-28)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.9.4</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes/SocketAckEmitter.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketAckEmitter Class Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Class/SocketAckEmitter\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketAckEmitter Class Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketAckEmitter Class Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketAckEmitter</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">final</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketAckEmitter</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>A class that represents a waiting ack call.</p>\n\n<p><strong>NOTE</strong>: You should not store this beyond the life of the event handler.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketAckEmitter(py)rawEmitView\"></a>\n                    <a name=\"//apple_ref/swift/Property/rawEmitView\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketAckEmitter(py)rawEmitView\">rawEmitView</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A view into this emitter where emits do not check for binary data.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">ack</span><span class=\"o\">.</span><span class=\"n\">rawEmitView</span><span class=\"o\">.</span><span class=\"nf\">with</span><span class=\"p\">(</span><span class=\"n\">myObject</span><span class=\"p\">)</span>\n</code></pre>\n\n<p><strong>NOTE</strong>: It is not safe to hold on to this view beyond the life of the socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"kd\">lazy</span> <span class=\"k\">var</span> <span class=\"nv\">rawEmitView</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10AckEmitterC8expectedSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/expected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10AckEmitterC8expectedSbvp\">expected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If true, this handler is expecting to be acked. Call <code>with(_: SocketData...)</code> to ack.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">expected</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Initializers\"></a>\n                <a name=\"//apple_ref/swift/Section/Initializers\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Initializers\"></a>\n                  <h3 class=\"section-name\"><p>Initializers</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10AckEmitterC6socket6ackNumAcA0A8IOClientC_Sitcfc\"></a>\n                    <a name=\"//apple_ref/swift/Method/init(socket:ackNum:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10AckEmitterC6socket6ackNumAcA0A8IOClientC_Sitcfc\">init(socket:<wbr>ackNum:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Creates a new <code>SocketAckEmitter</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"nf\">init</span><span class=\"p\">(</span><span class=\"nv\">socket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">,</span> <span class=\"nv\">ackNum</span><span class=\"p\">:</span> <span class=\"kt\">Int</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socket</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The socket for this emitter.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>ackNum</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The ack number for this emitter.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10AckEmitterC4withyyAA0A4Data_pd_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/with(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10AckEmitterC4withyyAA0A4Data_pd_tF\">with(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Call to ack receiving this event.</p>\n\n<p>If an error occurs trying to transform <code>items</code> into their socket representation, a <code><a href=\"../Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO5erroryA2CmF\">SocketClientEvent.error</a></code>\nwill be emitted. The structure of the error data is <code>[ackNum, items, theError]</code></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">with</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketData.html\">SocketData</a></span><span class=\"o\">...</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>A variable number of items to send when acking.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketAckEmitter(im)with:\"></a>\n                    <a name=\"//apple_ref/swift/Method/with(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketAckEmitter(im)with:\">with(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Call to ack receiving this event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">with</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>An array of items to send when acking. Use <code>[]</code> to send nothing.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes/SocketAnyEvent.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketAnyEvent Class Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Class/SocketAnyEvent\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketAnyEvent Class Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketAnyEvent Class Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketAnyEvent</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">final</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketAnyEvent</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>Represents some event that was received.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketAnyEvent(py)event\"></a>\n                    <a name=\"//apple_ref/swift/Property/event\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketAnyEvent(py)event\">event</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The event name.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketAnyEvent(py)items\"></a>\n                    <a name=\"//apple_ref/swift/Property/items\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketAnyEvent(py)items\">items</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The data items for this event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">]?</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketAnyEvent(py)description\"></a>\n                    <a name=\"//apple_ref/swift/Property/description\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketAnyEvent(py)description\">description</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The description of this event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">override</span> <span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">description</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes/SocketClientManager.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketClientManager Class Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Class/SocketClientManager\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketClientManager Class Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketClientManager Class Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SSLSecurity.html\">SSLSecurity</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketClientManager.html\">SocketClientManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientStatus.html\">SocketIOClientStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <h1>SocketClientManager</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  <pre class=\"highlight\"><code><span class=\"n\">open</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketClientManager</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>Experimental socket manager.</p>\n\n<p>API subject to change.</p>\n\n<p>Can be used to persist sockets across ViewControllers.</p>\n\n<p>Sockets are strongly stored, so be sure to remove them once they are no\nlonger needed.</p>\n\n<p>Example usage:</p>\n<pre class=\"highlight plaintext\"><code>let manager = SocketClientManager.sharedManager\nmanager[\"room1\"] = socket1\nmanager[\"room2\"] = socket2\nmanager.removeSocket(socket: socket2)\nmanager[\"room1\"]?.emit(\"hello\")\n</code></pre>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties.\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties.\" class=\"dashAnchor\"></a>\n                <a href=\"#/Properties.\">\n                  <h3 class=\"section-name\">Properties.</h3>\n                </a>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketClientManager(cpy)sharedManager\"></a>\n                    <a name=\"//apple_ref/swift/Variable/sharedManager\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketClientManager(cpy)sharedManager\">sharedManager</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The shared manager.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight\"><code><span class=\"n\">open</span> <span class=\"kd\">static</span> <span class=\"k\">let</span> <span class=\"nv\">sharedManager</span> <span class=\"o\">=</span> <span class=\"kt\">SocketClientManager</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A13ClientManagerC9subscriptAA0A8IOClientCSgSSci\"></a>\n                    <a name=\"//apple_ref/swift/Method/subscript(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A13ClientManagerC9subscriptAA0A8IOClientCSgSSci\">subscript(_:)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Gets a socket by its name.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight\"><code><span class=\"n\">open</span> <span class=\"nf\">subscript</span><span class=\"p\">(</span><span class=\"nv\">string</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>The socket, if one had the given name.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods.\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods.\" class=\"dashAnchor\"></a>\n                <a href=\"#/Methods.\">\n                  <h3 class=\"section-name\">Methods.</h3>\n                </a>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketClientManager(im)addSocket:labeledAs:\"></a>\n                    <a name=\"//apple_ref/swift/Method/addSocket(_:labeledAs:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketClientManager(im)addSocket:labeledAs:\">addSocket(_:labeledAs:)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight\"><code><span class=\"n\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">addSocket</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">socket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">,</span> <span class=\"n\">labeledAs</span> <span class=\"nv\">label</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socket</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The socket to add.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>labeledAs</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The label for this socket.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketClientManager(im)removeSocketWithLabel:\"></a>\n                    <a name=\"//apple_ref/swift/Method/removeSocket(withLabel:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketClientManager(im)removeSocketWithLabel:\">removeSocket(withLabel:)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes a socket by a given name.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight\"><code><span class=\"n\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">removeSocket</span><span class=\"p\">(</span><span class=\"n\">withLabel</span> <span class=\"nv\">label</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withLabel</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The label of the socket to remove.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>The socket for the given label, if one was present.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketClientManager(im)removeSocket:\"></a>\n                    <a name=\"//apple_ref/swift/Method/removeSocket(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketClientManager(im)removeSocket:\">removeSocket(_:)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes a socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight\"><code><span class=\"n\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">removeSocket</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">socket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socket</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The socket to remove.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>The socket if it was in the manager.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketClientManager(im)removeSockets\"></a>\n                    <a name=\"//apple_ref/swift/Method/removeSockets()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketClientManager(im)removeSockets\">removeSockets()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes all the sockets in the manager.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight\"><code><span class=\"n\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">removeSockets</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2017 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2017-10-05)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.8.4</a>, a <a class=\"link\" href=\"http://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes/SocketEngine.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketEngine Class Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Class/SocketEngine\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketEngine Class Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketEngine Class Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketEngine</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketEngine</span><span class=\"p\">:</span>\n        <span class=\"kt\">NSObject</span><span class=\"p\">,</span> <span class=\"kt\">WebSocketDelegate</span><span class=\"p\">,</span> <span class=\"kt\">URLSessionDelegate</span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a></span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a></span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a></span></code></pre>\n\n                </div>\n              </div>\n            <p>The class that handles the engine.io protocol and transports.\nSee <code><a href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a></code> and <code><a href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a></code> for transport specific methods.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC11engineQueueSo17OS_dispatch_queueCvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/engineQueue\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC11engineQueueSo17OS_dispatch_queueCvp\">engineQueue</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The queue that all engine actions take place on.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">engineQueue</span><span class=\"p\">:</span> <span class=\"kt\">DispatchQueue</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC13connectParamsSDySSypGSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/connectParams\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC13connectParamsSDySSypGSgvp\">connectParams</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The connect parameters sent during a connect.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">connectParams</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC12extraHeadersSDyS2SGSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/extraHeaders\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC12extraHeadersSDyS2SGSgvp\">extraHeaders</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A dictionary of extra http headers that will be set during connection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">extraHeaders</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">]?</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC8postWaitSaySS3msg_yycSg10completiontGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/postWait\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC8postWaitSaySS3msg_yycSg10completiontGvp\">postWait</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A queue of engine.io messages waiting for POSTing</p>\n\n<p><strong>You should not touch this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">postWait</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a></span><span class=\"p\">]</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC14waitingForPollSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/waitingForPoll\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC14waitingForPollSbvp\">waitingForPoll</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p><code>true</code> if there is an outstanding poll. Trying to poll before the first is done will cause socket.io to\ndisconnect us.</p>\n\n<p><strong>Do not touch this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">waitingForPoll</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC14waitingForPostSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/waitingForPost\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC14waitingForPostSbvp\">waitingForPost</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p><code>true</code> if there is an outstanding post. Trying to post before the first is done will cause socket.io to\ndisconnect us.</p>\n\n<p><strong>Do not touch this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">waitingForPost</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC6closedSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/closed\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC6closedSbvp\">closed</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p><code>true</code> if this engine is closed.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">closed</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC8compressSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/compress\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC8compressSbvp\">compress</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code> the engine will attempt to use WebSocket compression.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">compress</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC9connectedSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/connected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC9connectedSbvp\">connected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p><code>true</code> if this engine is connected. Connected means that the initial poll connect has succeeded.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">connected</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC7cookiesSaySo12NSHTTPCookieCGSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/cookies\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC7cookiesSaySo12NSHTTPCookieCGSgvp\">cookies</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>An array of HTTPCookies that are sent during the connection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">cookies</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">HTTPCookie</span><span class=\"p\">]?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC11fastUpgradeSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/fastUpgrade\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC11fastUpgradeSbvp\">fastUpgrade</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>When <code>true</code>, the engine is in the process of switching to WebSockets.</p>\n\n<p><strong>Do not touch this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">fastUpgrade</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC12forcePollingSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/forcePolling\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC12forcePollingSbvp\">forcePolling</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>When <code>true</code>, the engine will only use HTTP long-polling as a transport.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">forcePolling</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC15forceWebsocketsSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/forceWebsockets\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC15forceWebsocketsSbvp\">forceWebsockets</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>When <code>true</code>, the engine will only use WebSockets as a transport.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">forceWebsockets</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC11invalidatedSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/invalidated\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC11invalidatedSbvp\">invalidated</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p><code>true</code> If engine&rsquo;s session has been invalidated.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">invalidated</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC7pollingSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/polling\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC7pollingSbvp\">polling</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code>, the engine is currently in HTTP long-polling mode.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">polling</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC7probingSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/probing\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC7probingSbvp\">probing</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code>, the engine is currently seeing whether it can upgrade to WebSockets.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">probing</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC7sessionSo12NSURLSessionCSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/session\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC7sessionSo12NSURLSessionCSgvp\">session</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The URLSession that will be used for polling.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">session</span><span class=\"p\">:</span> <span class=\"kt\">URLSession</span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC3sidSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/sid\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC3sidSSvp\">sid</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The session id for this engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">sid</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC10socketPathSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/socketPath\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC10socketPathSSvp\">socketPath</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The path to engine.io.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">socketPath</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC10urlPolling10Foundation3URLVvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/urlPolling\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC10urlPolling10Foundation3URLVvp\">urlPolling</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The url for polling.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">urlPolling</span><span class=\"p\">:</span> <span class=\"kt\">URL</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC06urlWebA010Foundation3URLVvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/urlWebSocket\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC06urlWebA010Foundation3URLVvp\">urlWebSocket</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The url for WebSockets.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">urlWebSocket</span><span class=\"p\">:</span> <span class=\"kt\">URL</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC7versionAA0A9IOVersionOvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/version\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC7versionAA0A9IOVersionOvp\">version</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The version of engine.io being used. Default is three.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">version</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC9websocketSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/websocket\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC9websocketSbvp\">websocket</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code>, then the engine is currently in WebSockets mode.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@available</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"p\">,</span> <span class=\"n\">deprecated</span><span class=\"p\">,</span> <span class=\"nv\">message</span><span class=\"p\">:</span> <span class=\"s\">\"No longer needed, if we're not polling, then we must be doing websockets\"</span><span class=\"p\">)</span>\n<span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">websocket</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC16enableSOCKSProxySbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/enableSOCKSProxy\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC16enableSOCKSProxySbvp\">enableSOCKSProxy</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>When <code>true</code>, the WebSocket <code>stream</code> will be configured with the enableSOCKSProxy <code>true</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">enableSOCKSProxy</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC2ws10Starscream03WebA0CSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/ws\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC2ws10Starscream03WebA0CSgvp\">ws</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The WebSocket for this engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">ws</span><span class=\"p\">:</span> <span class=\"kt\">WebSocket</span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC11wsConnectedSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/wsConnected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC11wsConnectedSbvp\">wsConnected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Whether or not the WebSocket is currently connected.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">wsConnected</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC6clientAA0aC6Client_pSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/client\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC6clientAA0aC6Client_pSgvp\">client</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The client for this engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">weak</span> <span class=\"k\">var</span> <span class=\"nv\">client</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Initializers\"></a>\n                <a name=\"//apple_ref/swift/Section/Initializers\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Initializers\"></a>\n                  <h3 class=\"section-name\"><p>Initializers</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC6client3url6configAcA0aC6Client_p_10Foundation3URLVAA0A21IOClientConfigurationVtcfc\"></a>\n                    <a name=\"//apple_ref/swift/Method/init(client:url:config:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC6client3url6configAcA0aC6Client_p_10Foundation3URLVAA0A21IOClientConfigurationVtcfc\">init(client:<wbr>url:<wbr>config:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Creates a new engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"nf\">init</span><span class=\"p\">(</span><span class=\"nv\">client</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a></span><span class=\"p\">,</span> <span class=\"nv\">url</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">,</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>client</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The client for this engine.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>url</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The url for this engine.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>config</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>An array of configuration options for this engine.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC6client3url7optionsAcA0aC6Client_p_10Foundation3URLVSDySSypGSgtcfc\"></a>\n                    <a name=\"//apple_ref/swift/Method/init(client:url:options:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC6client3url7optionsAcA0aC6Client_p_10Foundation3URLVSDySSypGSgtcfc\">init(client:<wbr>url:<wbr>options:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Creates a new engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">required</span> <span class=\"kd\">convenience</span> <span class=\"nf\">init</span><span class=\"p\">(</span><span class=\"nv\">client</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a></span><span class=\"p\">,</span> <span class=\"nv\">url</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">,</span> <span class=\"nv\">options</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>client</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The client for this engine.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>url</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The url for this engine.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>options</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The options for this engine.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC7connectyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/connect()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC7connectyyF\">connect()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Starts the connection to the server.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">connect</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC8didError6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/didError(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC8didError6reasonySS_tF\">didError(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when an error happens during execution. Causes a disconnection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">didError</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC10disconnect6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/disconnect(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC10disconnect6reasonySS_tF\">disconnect(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnects from the server.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">disconnect</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason for the disconnection. This is communicated up to the client.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC13doFastUpgradeyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/doFastUpgrade()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC13doFastUpgradeyyF\">doFastUpgrade()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called to switch from HTTP long-polling to WebSockets. After calling this method the engine will be in\nWebSocket mode.</p>\n\n<p><strong>You shouldn&rsquo;t call this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">doFastUpgrade</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC024flushWaitingForPostToWebA0yyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/flushWaitingForPostToWebSocket()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC024flushWaitingForPostToWebA0yyF\">flushWaitingForPostToWebSocket()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Causes any packets that were waiting for POSTing to be sent through the WebSocket. This happens because when\nthe engine is attempting to upgrade to WebSocket it does not do any POSTing.</p>\n\n<p><strong>You shouldn&rsquo;t call this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">flushWaitingForPostToWebSocket</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC05parseC4Datayy10Foundation0E0VF\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseEngineData(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC05parseC4Datayy10Foundation0E0VF\">parseEngineData(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Parses raw binary received from engine.io.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">parseEngineData</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"kt\">Data</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data to parse.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC05parseC7MessageyySSF\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseEngineMessage(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC05parseC7MessageyySSF\">parseEngineMessage(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Parses a raw engine.io packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">parseEngineMessage</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">message</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>message</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The message to parse.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC10setConfigsyyAA0A21IOClientConfigurationVF\"></a>\n                    <a name=\"//apple_ref/swift/Method/setConfigs(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC10setConfigsyyAA0A21IOClientConfigurationVF\">setConfigs(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine should set/update its configs from a given configuration.</p>\n\n<p>parameter config: The <code><a href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a></code> that should be used to set/update configs.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">setConfigs</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC5write_8withType0E4Data10completionySS_AA0ac6PacketF0OSay10Foundation0G0VGyycSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/write(_:withType:withData:completion:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC5write_8withType0E4Data10completionySS_AA0ac6PacketF0OSay10Foundation0G0VGyycSgtF\">write(_:<wbr>withType:<wbr>withData:<wbr>completion:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Writes a message to engine.io, independent of transport.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">write</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">msg</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">withType</span> <span class=\"nv\">type</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a></span><span class=\"p\">,</span> <span class=\"n\">withData</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Data</span><span class=\"p\">],</span> <span class=\"nv\">completion</span><span class=\"p\">:</span> <span class=\"p\">(()</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?</span> <span class=\"o\">=</span> <span class=\"kc\">nil</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>msg</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The message to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>type</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The type of this message.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Any data that this message has.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>completion</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Callback called on transport write completion.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/URLSessionDelegate%20methods\"></a>\n                <a name=\"//apple_ref/swift/Section/URLSessionDelegate methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/URLSessionDelegate%20methods\"></a>\n                  <h3 class=\"section-name\"><p>URLSessionDelegate methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC10URLSession7session25didBecomeInvalidWithErrorySo12NSURLSessionC_So7NSErrorCSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/URLSession(session:didBecomeInvalidWithError:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC10URLSession7session25didBecomeInvalidWithErrorySo12NSURLSessionC_So7NSErrorCSgtF\">URLSession(session:<wbr>didBecomeInvalidWithError:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Delegate called when the session becomes invalid.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"kt\">URLSession</span><span class=\"p\">(</span><span class=\"nv\">session</span><span class=\"p\">:</span> <span class=\"kt\">URLSession</span><span class=\"p\">,</span> <span class=\"n\">didBecomeInvalidWithError</span> <span class=\"nv\">error</span><span class=\"p\">:</span> <span class=\"kt\">NSError</span><span class=\"p\">?)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6EngineC10didReceive5event6clienty10Starscream03WebA5EventO_AG0iA0CtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/didReceive(event:client:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6EngineC10didReceive5event6clienty10Starscream03WebA5EventO_AG0iA0CtF\">didReceive(event:<wbr>client:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Delegate method for WebSocketDelegate.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">didReceive</span><span class=\"p\">(</span><span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">WebSocketEvent</span><span class=\"p\">,</span> <span class=\"n\"><a href=\"../Classes/SocketEngine.html#/s:8SocketIO0A6EngineC6clientAA0aC6Client_pSgvp\">client</a></span> <span class=\"nv\">_</span><span class=\"p\">:</span> <span class=\"kt\">WebSocket</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>WS Event</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>_</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p></p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes/SocketIOClient.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketIOClient Class Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Class/SocketIOClient\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketIOClient Class Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketIOClient Class Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketIOClient</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketIOClient</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a></span></code></pre>\n\n                </div>\n              </div>\n            <p>Represents a socket.io-client.</p>\n\n<p>Clients are created through a <code><a href=\"../Classes/SocketManager.html\">SocketManager</a></code>, which owns the <code><a href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></code> that controls the connection to the server.</p>\n\n<p>For example:</p>\n<pre class=\"highlight swift\"><code><span class=\"c1\">// Create a socket for the /swift namespace</span>\n<span class=\"k\">let</span> <span class=\"nv\">socket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"nf\">socket</span><span class=\"p\">(</span><span class=\"nv\">forNamespace</span><span class=\"p\">:</span> <span class=\"s\">\"/swift\"</span><span class=\"p\">)</span>\n\n<span class=\"c1\">// Add some handlers and connect</span>\n</code></pre>\n\n<p><strong>NOTE</strong>: The client is not thread/queue safe, all interaction with the socket should be done on the <code>manager.handleQueue</code></p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC3nspSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/nsp\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC3nspSSvp\">nsp</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The namespace that this socket is currently connected to.</p>\n\n<p><strong>Must</strong> start with a <code>/</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">nsp</span><span class=\"p\">:</span> <span class=\"kt\">String</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC10anyHandleryAA0A8AnyEventCcSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/anyHandler\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC10anyHandleryAA0A8AnyEventCcSgvp\">anyHandler</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A handler that will be called on any event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">anyHandler</span><span class=\"p\">:</span> <span class=\"p\">((</span><span class=\"kt\"><a href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC8handlersSayAA0A12EventHandlerVGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/handlers\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC8handlersSayAA0A12EventHandlerVGvp\">handlers</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The array of handlers for this socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">handlers</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\"><a href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a></span><span class=\"p\">]</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC7managerAA0A11ManagerSpec_pSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/manager\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC7managerAA0A11ManagerSpec_pSgvp\">manager</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The manager for this socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">weak</span> <span class=\"k\">var</span> <span class=\"nv\">manager</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a></span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC11rawEmitViewAA0a3RawF0Cvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/rawEmitView\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC11rawEmitViewAA0a3RawF0Cvp\">rawEmitView</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A view into this socket where emits do not check for binary data.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"n\">rawEmitView</span><span class=\"o\">.</span><span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">,</span> <span class=\"n\">myObject</span><span class=\"p\">)</span>\n</code></pre>\n\n<p><strong>NOTE</strong>: It is not safe to hold on to this view beyond the life of the socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"kd\">lazy</span> <span class=\"k\">var</span> <span class=\"nv\">rawEmitView</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketRawView.html\">SocketRawView</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC6statusAA0A8IOStatusOvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/status\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC6statusAA0A8IOStatusOvp\">status</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The status of this client.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">status</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC3sidSSSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/sid\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC3sidSSSgvp\">sid</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The id of this socket.io connect. This is different from the sid of the engine.io connection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">sid</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Initializers\"></a>\n                <a name=\"//apple_ref/swift/Section/Initializers\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Initializers\"></a>\n                  <h3 class=\"section-name\"><p>Initializers</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC7manager3nspAcA0A11ManagerSpec_p_SStcfc\"></a>\n                    <a name=\"//apple_ref/swift/Method/init(manager:nsp:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC7manager3nspAcA0A11ManagerSpec_p_SStcfc\">init(manager:<wbr>nsp:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Type safe way to create a new SocketIOClient. <code>opts</code> can be omitted.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"nf\">init</span><span class=\"p\">(</span><span class=\"nv\">manager</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a></span><span class=\"p\">,</span> <span class=\"nv\">nsp</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>manager</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The manager for this socket.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>nsp</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The namespace of the socket.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC7connect11withPayloadySDySSypGSg_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/connect(withPayload:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC7connect11withPayloadySDySSypGSg_tF\">connect(withPayload:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Connect to the server. The same as calling <code>connect(timeoutAfter:withHandler:)</code> with a timeout of 0.</p>\n\n<p>Only call after adding your event listeners, unless you know what you&rsquo;re doing.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">connect</span><span class=\"p\">(</span><span class=\"n\">withPayload</span> <span class=\"nv\">payload</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?</span> <span class=\"o\">=</span> <span class=\"kc\">nil</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withPayload</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>An optional payload sent on connect</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC7connect11withPayload12timeoutAfter0E7HandlerySDySSypGSg_SdyycSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/connect(withPayload:timeoutAfter:withHandler:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC7connect11withPayload12timeoutAfter0E7HandlerySDySSypGSg_SdyycSgtF\">connect(withPayload:<wbr>timeoutAfter:<wbr>withHandler:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Connect to the server. If we aren&rsquo;t connected after <code>timeoutAfter</code> seconds, then <code>withHandler</code> is called.</p>\n\n<p>Only call after adding your event listeners, unless you know what you&rsquo;re doing.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">connect</span><span class=\"p\">(</span><span class=\"n\">withPayload</span> <span class=\"nv\">payload</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?</span> <span class=\"o\">=</span> <span class=\"kc\">nil</span><span class=\"p\">,</span> <span class=\"nv\">timeoutAfter</span><span class=\"p\">:</span> <span class=\"kt\">Double</span><span class=\"p\">,</span> <span class=\"n\">withHandler</span> <span class=\"nv\">handler</span><span class=\"p\">:</span> <span class=\"p\">(()</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withPayload</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>An optional payload sent on connect</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>timeoutAfter</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The number of seconds after which if we are not connected we assume the connection\n                      has failed. Pass 0 to never timeout.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>handler</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The handler to call when the client fails to connect.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC10didConnect11toNamespace7payloadySS_SDySSypGSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/didConnect(toNamespace:payload:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC10didConnect11toNamespace7payloadySS_SDySSypGSgtF\">didConnect(toNamespace:<wbr>payload:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the client connects to a namespace. If the client was created with a namespace upfront,\nthen this is only called when the client connects to that namespace.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">didConnect</span><span class=\"p\">(</span><span class=\"n\">toNamespace</span> <span class=\"nv\">namespace</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">payload</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>toNamespace</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The namespace that was connected to.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC13didDisconnect6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/didDisconnect(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC13didDisconnect6reasonySS_tF\">didDisconnect(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the client has disconnected from socket.io.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">didDisconnect</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason for the disconnection.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC10disconnectyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/disconnect()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC10disconnectyyF\">disconnect()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnects the socket.</p>\n\n<p>This will cause the socket to leave the namespace it is associated to, as well as remove itself from the\n<code><a href=\"../Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC7managerAA0A11ManagerSpec_pSgvp\">manager</a></code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">disconnect</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC4emit__10completionySS_AA0A4Data_pdyycSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emit(_:_:completion:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC4emit__10completionySS_AA0A4Data_pdyycSgtF\">emit(_:<wbr>_:<wbr>completion:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Send an event to the server, with optional data items and optional write completion handler.</p>\n\n<p>If an error occurs trying to transform <code>items</code> into their socket representation, a <code><a href=\"../Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO5erroryA2CmF\">SocketClientEvent.error</a></code>\nwill be emitted. The structure of the error data is <code>[eventName, items, theError]</code></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketData.html\">SocketData</a></span><span class=\"o\">...</span><span class=\"p\">,</span> <span class=\"nv\">completion</span><span class=\"p\">:</span> <span class=\"p\">(()</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?</span> <span class=\"o\">=</span> <span class=\"kc\">nil</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The items to send with this event. May be left out.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>completion</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Callback called on transport write completion.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC11emitWithAckyAA02OnF8CallbackCSS_AA0A4Data_pdtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emitWithAck(_:_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC11emitWithAckyAA02OnF8CallbackCSS_AA0A4Data_pdtF\">emitWithAck(_:<wbr>_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Sends a message to the server, requesting an ack.</p>\n\n<p><strong>NOTE</strong>: It is up to the server send an ack back, just calling this method does not mean the server will ack.\nCheck that your server&rsquo;s api will ack the event being sent.</p>\n\n<p>If an error occurs trying to transform <code>items</code> into their socket representation, a <code><a href=\"../Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO5erroryA2CmF\">SocketClientEvent.error</a></code>\nwill be emitted. The structure of the error data is <code>[eventName, items, theError]</code></p>\n\n<p>Example:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"nf\">timingOut</span><span class=\"p\">(</span><span class=\"nv\">after</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span> <span class=\"k\">in</span>\n    <span class=\"o\">...</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketData.html\">SocketData</a></span><span class=\"o\">...</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/OnAckCallback.html\">OnAckCallback</a></span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The items to send with this event. May be left out.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>An <code><a href=\"../Classes/OnAckCallback.html\">OnAckCallback</a></code>. You must call the <code>timingOut(after:)</code> method before the event will be sent.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC7emitAck_4withySi_SayypGtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emitAck(_:with:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC7emitAck_4withySi_SayypGtF\">emitAck(_:<wbr>with:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Call when you wish to tell the server that you&rsquo;ve received the event for <code>ack</code>.</p>\n\n<p><strong>You shouldn&rsquo;t need to call this directly.</strong> Instead use an <code><a href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a></code> that comes in an event callback.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">emitAck</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">ack</span><span class=\"p\">:</span> <span class=\"kt\">Int</span><span class=\"p\">,</span> <span class=\"n\">with</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>ack</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The ack number.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>with</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data for this ack.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC9handleAck_4dataySi_SayypGtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/handleAck(_:data:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC9handleAck_4dataySi_SayypGtF\">handleAck(_:<wbr>data:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when socket.io has acked one of our emits. Causes the corresponding ack callback to be called.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">handleAck</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">ack</span><span class=\"p\">:</span> <span class=\"kt\">Int</span><span class=\"p\">,</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>ack</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The number for this ack.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data sent back with this ack.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC17handleClientEvent_4datayAA0aeF0O_SayypGtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/handleClientEvent(_:data:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC17handleClientEvent_4datayAA0aeF0O_SayypGtF\">handleClientEvent(_:<wbr>data:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called on socket.io specific events.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">handleClientEvent</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></span><span class=\"p\">,</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The <code><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></code>.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data for this event.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC11handleEvent_4data17isInternalMessage7withAckySS_SayypGSbSitF\"></a>\n                    <a name=\"//apple_ref/swift/Method/handleEvent(_:data:isInternalMessage:withAck:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC11handleEvent_4data17isInternalMessage7withAckySS_SayypGSbSitF\">handleEvent(_:<wbr>data:<wbr>isInternalMessage:<wbr>withAck:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when we get an event from socket.io.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">handleEvent</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">],</span> <span class=\"nv\">isInternalMessage</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span><span class=\"p\">,</span> <span class=\"n\">withAck</span> <span class=\"nv\">ack</span><span class=\"p\">:</span> <span class=\"kt\">Int</span> <span class=\"o\">=</span> <span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The name of the event.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data that was sent with this event.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>isInternalMessage</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Whether this event was sent internally. If <code>true</code> it is always sent to handlers.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>ack</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>If &gt; 0 then this event expects to get an ack back from the client.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC12handlePacketyyAA0aE0VF\"></a>\n                    <a name=\"//apple_ref/swift/Method/handlePacket(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC12handlePacketyyAA0aE0VF\">handlePacket(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Causes a client to handle a socket.io packet. The namespace for the packet must match the namespace of the\nsocket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">handlePacket</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">packet</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketPacket.html\">SocketPacket</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>packet</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The packet to handle.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC14leaveNamespaceyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/leaveNamespace()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC14leaveNamespaceyyF\">leaveNamespace()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Call when you wish to leave a namespace and disconnect this socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">leaveNamespace</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC13joinNamespace11withPayloadySDySSypGSg_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/joinNamespace(withPayload:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC13joinNamespace11withPayloadySDySSypGSg_tF\">joinNamespace(withPayload:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Joins <code><a href=\"../Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC3nspSSvp\">nsp</a></code>. You shouldn&rsquo;t need to call this directly, instead call <code>connect</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">joinNamespace</span><span class=\"p\">(</span><span class=\"n\">withPayload</span> <span class=\"nv\">payload</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?</span> <span class=\"o\">=</span> <span class=\"kc\">nil</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withPayload</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>An optional payload sent on connect</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC3off11clientEventyAA0a6ClientF0O_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/off(clientEvent:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC3off11clientEventyAA0a6ClientF0O_tF\">off(clientEvent:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes handler(s) for a client event.</p>\n\n<p>If you wish to remove a client event handler, call the <code><a href=\"../Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC3off2idy10Foundation4UUIDV_tF\">off(id:)</a></code> with the UUID received from its <code>on</code> call.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">off</span><span class=\"p\">(</span><span class=\"n\">clientEvent</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>clientEvent</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to remove handlers for.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC3offyySSF\"></a>\n                    <a name=\"//apple_ref/swift/Method/off(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC3offyySSF\">off(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes handler(s) based on an event name.</p>\n\n<p>If you wish to remove a specific event, call the <code><a href=\"../Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC3off2idy10Foundation4UUIDV_tF\">off(id:)</a></code> with the UUID received from its <code>on</code> call.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">off</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to remove handlers for.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC3off2idy10Foundation4UUIDV_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/off(id:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC3off2idy10Foundation4UUIDV_tF\">off(id:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes a handler with the specified UUID gotten from an <code>on</code> or <code>once</code></p>\n\n<p>If you want to remove all events for an event, call the off <code><a href=\"../Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC3offyySSF\">off(_:)</a></code> method with the event name.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">off</span><span class=\"p\">(</span><span class=\"nv\">id</span><span class=\"p\">:</span> <span class=\"kt\">UUID</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>id</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The UUID of the handler you wish to remove.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC2on_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\"></a>\n                    <a name=\"//apple_ref/swift/Method/on(_:callback:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC2on_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\">on(_:<wbr>callback:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a handler for an event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@discardableResult</span>\n<span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">callback</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">UUID</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event name for this handler.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>callback</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback that will execute when this event is received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A unique id for the handler that can be used to remove it.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC2on11clientEvent8callback10Foundation4UUIDVAA0a6ClientF0O_ySayypG_AA0A10AckEmitterCtctF\"></a>\n                    <a name=\"//apple_ref/swift/Method/on(clientEvent:callback:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC2on11clientEvent8callback10Foundation4UUIDVAA0a6ClientF0O_ySayypG_AA0A10AckEmitterCtctF\">on(clientEvent:<wbr>callback:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a handler for a client event.</p>\n\n<p>Example:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">connect</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"o\">...</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@discardableResult</span>\n<span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"n\">clientEvent</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></span><span class=\"p\">,</span> <span class=\"nv\">callback</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">UUID</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event for this handler.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>callback</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback that will execute when this event is received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A unique id for the handler that can be used to remove it.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC4once11clientEvent8callback10Foundation4UUIDVAA0a6ClientF0O_ySayypG_AA0A10AckEmitterCtctF\"></a>\n                    <a name=\"//apple_ref/swift/Method/once(clientEvent:callback:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC4once11clientEvent8callback10Foundation4UUIDVAA0a6ClientF0O_ySayypG_AA0A10AckEmitterCtctF\">once(clientEvent:<wbr>callback:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a single-use handler for a client event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@discardableResult</span>\n<span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">once</span><span class=\"p\">(</span><span class=\"n\">clientEvent</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></span><span class=\"p\">,</span> <span class=\"nv\">callback</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">UUID</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>clientEvent</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event for this handler.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>callback</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback that will execute when this event is received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A unique id for the handler that can be used to remove it.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC4once_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\"></a>\n                    <a name=\"//apple_ref/swift/Method/once(_:callback:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC4once_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\">once(_:<wbr>callback:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a single-use handler for an event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@discardableResult</span>\n<span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">once</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">callback</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">UUID</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event name for this handler.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>callback</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback that will execute when this event is received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A unique id for the handler that can be used to remove it.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC5onAnyyyyAA0aE5EventCcF\"></a>\n                    <a name=\"//apple_ref/swift/Method/onAny(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC5onAnyyyyAA0aE5EventCcF\">onAny(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a handler that will be called on every event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">onAny</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">handler</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"p\">(</span><span class=\"kt\"><a href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>handler</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback that will execute whenever an event is received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC17removeAllHandlersyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/removeAllHandlers()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC17removeAllHandlersyyF\">removeAllHandlers()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes all handlers.</p>\n\n<p>Can be used after disconnecting to break any potential remaining retain cycles.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">removeAllHandlers</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOClientC15setReconnecting6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/setReconnecting(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOClientC15setReconnecting6reasonySS_tF\">setReconnecting(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Puts the socket back into the connecting state.\nCalled when the manager detects a broken connection, or when a manual reconnect is triggered.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">setReconnecting</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason this socket is reconnecting.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes/SocketManager.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketManager Class Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Class/SocketManager\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketManager Class Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketManager Class Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketManager</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketManager</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a></span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"../Protocols/SocketParsable.html\">SocketParsable</a></span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a></span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a></span></code></pre>\n\n                </div>\n              </div>\n            <p>A manager for a socket.io connection.</p>\n\n<p>A <code>SocketManager</code> is responsible for multiplexing multiple namespaces through a single <code><a href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></code>.</p>\n\n<p>Example:</p>\n<pre class=\"highlight swift\"><code><span class=\"k\">let</span> <span class=\"nv\">manager</span> <span class=\"o\">=</span> <span class=\"kt\">SocketManager</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">(</span><span class=\"nv\">string</span><span class=\"p\">:</span><span class=\"s\">\"http://localhost:8080/\"</span><span class=\"p\">)</span><span class=\"o\">!</span><span class=\"p\">)</span>\n<span class=\"k\">let</span> <span class=\"nv\">defaultNamespaceSocket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"n\">defaultSocket</span>\n<span class=\"k\">let</span> <span class=\"nv\">swiftSocket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"nf\">socket</span><span class=\"p\">(</span><span class=\"nv\">forNamespace</span><span class=\"p\">:</span> <span class=\"s\">\"/swift\"</span><span class=\"p\">)</span>\n\n<span class=\"c1\">// defaultNamespaceSocket and swiftSocket both share a single connection to the server</span>\n</code></pre>\n\n<p>Sockets created through the manager are retained by the manager. So at the very least, a single strong reference\nto the manager must be maintained to keep sockets alive.</p>\n\n<p>To disconnect a socket and remove it from the manager, either call <code><a href=\"../Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC10disconnectyyF\">SocketIOClient.disconnect()</a></code> on the socket,\nor call one of the <code>disconnectSocket</code> methods on this class.</p>\n\n<p><strong>NOTE</strong>: The manager is not thread/queue safe, all interaction with the manager should be done on the <code>handleQueue</code></p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC07defaultA0AA0A8IOClientCvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/defaultSocket\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC07defaultA0AA0A8IOClientCvp\">defaultSocket</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The socket associated with the default namespace (&ldquo;/&rdquo;).</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">defaultSocket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC9socketURL10Foundation0E0Vvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/socketURL\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC9socketURL10Foundation0E0Vvp\">socketURL</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The URL of the socket.io server.</p>\n\n<p>If changed after calling <code>init</code>, <code><a href=\"../Classes/SocketManager.html#/s:8SocketIO0A7ManagerC8forceNewSbvp\">forceNew</a></code> must be set to <code>true</code>, or it will only connect to the url set in the\ninit.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC6configAA0A21IOClientConfigurationVvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/config\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC6configAA0A21IOClientConfigurationVvp\">config</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The configuration for this client.</p>\n\n<p><strong>Some configs will not take affect until after a reconnect if set after calling a connect method</strong>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC6engineAA0A10EngineSpec_pSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/engine\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC6engineAA0A10EngineSpec_pSgvp\">engine</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The engine for this manager.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">engine</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC8forceNewSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/forceNew\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC8forceNewSbvp\">forceNew</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code> then every time <code>connect</code> is called, a new engine will be created.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">forceNew</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC11handleQueueSo17OS_dispatch_queueCvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/handleQueue\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC11handleQueueSo17OS_dispatch_queueCvp\">handleQueue</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The queue that all interaction with the client should occur on. This is the queue that event handlers are\ncalled on.</p>\n\n<p><strong>This should be a serial queue! Concurrent queues are not supported and might cause crashes and races</strong>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">handleQueue</span><span class=\"p\">:</span> <span class=\"kt\">DispatchQueue</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC4nspsSDySSAA0A8IOClientCGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/nsps\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC4nspsSDySSAA0A8IOClientCGvp\">nsps</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The sockets in this manager indexed by namespace.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">nsps</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">]</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC10reconnectsSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/reconnects\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC10reconnectsSbvp\">reconnects</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code>, this client will try and reconnect on any disconnects.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">reconnects</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC13reconnectWaitSivp\"></a>\n                    <a name=\"//apple_ref/swift/Property/reconnectWait\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC13reconnectWaitSivp\">reconnectWait</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The minimum number of seconds to wait before attempting to reconnect.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">reconnectWait</span><span class=\"p\">:</span> <span class=\"kt\">Int</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC16reconnectWaitMaxSivp\"></a>\n                    <a name=\"//apple_ref/swift/Property/reconnectWaitMax\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC16reconnectWaitMaxSivp\">reconnectWaitMax</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The maximum number of seconds to wait before attempting to reconnect.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">reconnectWaitMax</span><span class=\"p\">:</span> <span class=\"kt\">Int</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC19randomizationFactorSdvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/randomizationFactor\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC19randomizationFactorSdvp\">randomizationFactor</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The randomization factor for calculating reconnect jitter.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">randomizationFactor</span><span class=\"p\">:</span> <span class=\"kt\">Double</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC6statusAA0A8IOStatusOvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/status\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC6statusAA0A8IOStatusOvp\">status</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The status of this manager.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">status</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP7versionAA0A9IOVersionOvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/version\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP7versionAA0A9IOVersionOvp\">version</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">private(set)</span> <span class=\"k\">var</span> <span class=\"nv\">version</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC14waitingPacketsSayAA0A6PacketVGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/waitingPackets\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC14waitingPacketsSayAA0A6PacketVGvp\">waitingPackets</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A list of packets that are waiting for binary data.</p>\n\n<p>The way that socket.io works all data should be sent directly after each packet.\nSo this should ideally be an array of one packet waiting for data.</p>\n\n<p><strong>This should not be modified directly.</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">waitingPackets</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\"><a href=\"../Structs/SocketPacket.html\">SocketPacket</a></span><span class=\"p\">]</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Initializers\"></a>\n                <a name=\"//apple_ref/swift/Section/Initializers\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Initializers\"></a>\n                  <h3 class=\"section-name\"><p>Initializers</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC9socketURL6configAC10Foundation0E0V_AA0A21IOClientConfigurationVtcfc\"></a>\n                    <a name=\"//apple_ref/swift/Method/init(socketURL:config:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC9socketURL6configAC10Foundation0E0V_AA0A21IOClientConfigurationVtcfc\">init(socketURL:<wbr>config:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Type safe way to create a new SocketIOClient. <code>opts</code> can be omitted.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"nf\">init</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">,</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a></span> <span class=\"o\">=</span> <span class=\"p\">[])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socketURL</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The url of the socket.io server.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>config</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The config for this socket.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)initWithSocketURL:config:\"></a>\n                    <a name=\"//apple_ref/swift/Method/init(socketURL:config:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)initWithSocketURL:config:\">init(socketURL:<wbr>config:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Not so type safe way to create a SocketIOClient, meant for Objective-C compatiblity.\nIf using Swift it&rsquo;s recommended to use <code>init(socketURL: NSURL, options: Set&lt;SocketIOClientOption&gt;)</code></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">convenience</span> <span class=\"nf\">init</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">,</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socketURL</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The url of the socket.io server.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>config</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The config for this socket.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC7connectyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/connect()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC7connectyyF\">connect()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Connects the underlying transport and the default namespace socket.</p>\n\n<p>Override if you wish to attach a custom <code><a href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">connect</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC07connectA0_11withPayloadyAA0A8IOClientC_SDySSypGSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/connectSocket(_:withPayload:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC07connectA0_11withPayloadyAA0A8IOClientC_SDySSypGSgtF\">connectSocket(_:<wbr>withPayload:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Connects a socket through this manager&rsquo;s engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">connectSocket</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">socket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">,</span> <span class=\"n\">withPayload</span> <span class=\"nv\">payload</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?</span> <span class=\"o\">=</span> <span class=\"kc\">nil</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socket</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The socket who we should connect through this manager.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withPayload</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Optional payload to send on connect</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC13didDisconnect6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/didDisconnect(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC13didDisconnect6reasonySS_tF\">didDisconnect(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the manager has disconnected from socket.io.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">didDisconnect</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason for the disconnection.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC10disconnectyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/disconnect()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC10disconnectyyF\">disconnect()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnects the manager and all associated sockets.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">disconnect</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC010disconnectA0yyAA0A8IOClientCF\"></a>\n                    <a name=\"//apple_ref/swift/Method/disconnectSocket(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC010disconnectA0yyAA0A8IOClientCF\">disconnectSocket(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnects the given socket.</p>\n\n<p>This will remove the socket for the manager&rsquo;s control, and make the socket instance useless and ready for\nreleasing.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">disconnectSocket</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">socket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socket</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The socket to disconnect.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC010disconnectA012forNamespaceySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/disconnectSocket(forNamespace:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC010disconnectA012forNamespaceySS_tF\">disconnectSocket(forNamespace:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnects the socket associated with <code>forNamespace</code>.</p>\n\n<p>This will remove the socket for the manager&rsquo;s control, and make the socket instance useless and ready for\nreleasing.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">disconnectSocket</span><span class=\"p\">(</span><span class=\"n\">forNamespace</span> <span class=\"nv\">nsp</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>nsp</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The namespace to disconnect from.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC7emitAll11clientEvent4datayAA0a6ClientG0O_SayypGtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emitAll(clientEvent:data:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC7emitAll11clientEvent4datayAA0a6ClientG0O_SayypGtF\">emitAll(clientEvent:<wbr>data:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Sends a client event to all sockets in <code><a href=\"../Classes/SocketManager.html#/s:8SocketIO0A7ManagerC4nspsSDySSAA0A8IOClientCGvp\">nsps</a></code></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">emitAll</span><span class=\"p\">(</span><span class=\"n\">clientEvent</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></span><span class=\"p\">,</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>clientEvent</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to emit.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC7emitAllyySS_AA0A4Data_pdtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emitAll(_:_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC7emitAllyySS_AA0A4Data_pdtF\">emitAll(_:<wbr>_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Sends an event to the server on all namespaces in this manager.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">emitAll</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketData.html\">SocketData</a></span><span class=\"o\">...</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data to send with this event.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidCloseWithReason:\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidClose(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidCloseWithReason:\">engineDidClose(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine closes.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">engineDidClose</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason that the engine closed.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidErrorWithReason:\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidError(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidErrorWithReason:\">engineDidError(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine errors.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">engineDidError</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason the engine errored.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidOpenWithReason:\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidOpen(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidOpenWithReason:\">engineDidOpen(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine opens.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">engineDidOpen</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason the engine opened.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidReceivePing\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidReceivePing()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidReceivePing\">engineDidReceivePing()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine receives a ping message.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">engineDidReceivePing</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidSendPing\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidSendPing()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidSendPing\">engineDidSendPing()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the sends a ping to the server.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">engineDidSendPing</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidReceivePong\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidReceivePong()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidReceivePong\">engineDidReceivePong()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine receives a pong message.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">engineDidReceivePong</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidSendPong\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidSendPong()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidSendPong\">engineDidSendPong()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the sends a pong to the server.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">engineDidSendPong</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidWebsocketUpgradeWithHeaders:\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidWebsocketUpgrade(headers:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidWebsocketUpgradeWithHeaders:\">engineDidWebsocketUpgrade(headers:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when when upgrading the http connection to a websocket connection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">engineDidWebsocketUpgrade</span><span class=\"p\">(</span><span class=\"nv\">headers</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>headers</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The http headers.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)parseEngineMessage:\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseEngineMessage(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)parseEngineMessage:\">parseEngineMessage(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine has a message that must be parsed.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">parseEngineMessage</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">msg</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>msg</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The message that needs parsing.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager(im)parseEngineBinaryData:\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseEngineBinaryData(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager(im)parseEngineBinaryData:\">parseEngineBinaryData(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine receives binary data.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">parseEngineBinaryData</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"kt\">Data</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data the engine received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC9reconnectyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/reconnect()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC9reconnectyyF\">reconnect()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Tries to reconnect to the server.</p>\n\n<p>This will cause a <code><a href=\"../Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO9reconnectyA2CmF\">SocketClientEvent.reconnect</a></code> event to be emitted, as well as\n<code><a href=\"../Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO16reconnectAttemptyA2CmF\">SocketClientEvent.reconnectAttempt</a></code> events.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">reconnect</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC06removeA0yAA0A8IOClientCSgAFF\"></a>\n                    <a name=\"//apple_ref/swift/Method/removeSocket(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC06removeA0yAA0A8IOClientCSgAFF\">removeSocket(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes the socket from the manager&rsquo;s control. One of the disconnect methods should be called before calling this\nmethod.</p>\n\n<p>After calling this method the socket should no longer be considered usable.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@discardableResult</span>\n<span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">removeSocket</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">socket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socket</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The socket to remove.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>The socket removed, if it was owned by the manager.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC10setConfigsyyAA0A21IOClientConfigurationVF\"></a>\n                    <a name=\"//apple_ref/swift/Method/setConfigs(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC10setConfigsyyAA0A21IOClientConfigurationVF\">setConfigs(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Sets manager specific configs.</p>\n\n<p>parameter config: The configs that should be set.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">setConfigs</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7ManagerC6socket12forNamespaceAA0A8IOClientCSS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/socket(forNamespace:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7ManagerC6socket12forNamespaceAA0A8IOClientCSS_tF\">socket(forNamespace:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Returns a <code><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></code> for the given namespace. This socket shares a transport with the manager.</p>\n\n<p>Calling multiple times returns the same socket.</p>\n\n<p>Sockets created from this method are retained by the manager.\nCall one of the <code>disconnectSocket</code> methods on this class to remove the socket from manager control.\nOr call <code><a href=\"../Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC10disconnectyyF\">SocketIOClient.disconnect()</a></code> on the client.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">func</span> <span class=\"nf\">socket</span><span class=\"p\">(</span><span class=\"n\">forNamespace</span> <span class=\"nv\">nsp</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>nsp</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The namespace for the socket.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A <code><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></code> for the given namespace.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes/SocketRawAckView.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketRawAckView Class Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Class/SocketRawAckView\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketRawAckView Class Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketRawAckView Class Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketRawAckView</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">final</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketRawAckView</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>Class that gives a backwards compatible way to cause an emit not to recursively check for Data objects.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">ack</span><span class=\"o\">.</span><span class=\"n\">rawEmitView</span><span class=\"o\">.</span><span class=\"nf\">with</span><span class=\"p\">(</span><span class=\"n\">myObject</span><span class=\"p\">)</span>\n</code></pre>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10RawAckViewC4withyyAA0A4Data_pd_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/with(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10RawAckViewC4withyyAA0A4Data_pd_tF\">with(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Call to ack receiving this event.</p>\n\n<p>If an error occurs trying to transform <code>items</code> into their socket representation, a <code><a href=\"../Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO5erroryA2CmF\">SocketClientEvent.error</a></code>\nwill be emitted. The structure of the error data is <code>[ackNum, items, theError]</code></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">with</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketData.html\">SocketData</a></span><span class=\"o\">...</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>A variable number of items to send when acking.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketRawAckView(im)with:\"></a>\n                    <a name=\"//apple_ref/swift/Method/with(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketRawAckView(im)with:\">with(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Call to ack receiving this event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">with</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>An array of items to send when acking. Use <code>[]</code> to send nothing.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes/SocketRawView.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketRawView Class Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Class/SocketRawView\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketRawView Class Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketRawView Class Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketRawView</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">final</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketRawView</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>Class that gives a backwards compatible way to cause an emit not to recursively check for Data objects.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"n\">rawEmitView</span><span class=\"o\">.</span><span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">,</span> <span class=\"n\">myObject</span><span class=\"p\">)</span>\n</code></pre>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7RawViewC4emityySS_AA0A4Data_pdtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emit(_:_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7RawViewC4emityySS_AA0A4Data_pdtF\">emit(_:<wbr>_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Send an event to the server, with optional data items.</p>\n\n<p>If an error occurs trying to transform <code>items</code> into their socket representation, a <code><a href=\"../Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO5erroryA2CmF\">SocketClientEvent.error</a></code>\nwill be emitted. The structure of the error data is <code>[eventName, items, theError]</code></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketData.html\">SocketData</a></span><span class=\"o\">...</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The items to send with this event. May be left out.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketRawView(im)emit:with:\"></a>\n                    <a name=\"//apple_ref/swift/Method/emit(_:with:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketRawView(im)emit:with:\">emit(_:<wbr>with:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Same as emit, but meant for Objective-C</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">with</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The items to send with this event. Send an empty array to send no data.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A7RawViewC11emitWithAckyAA02OnG8CallbackCSS_AA0A4Data_pdtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emitWithAck(_:_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A7RawViewC11emitWithAckyAA02OnG8CallbackCSS_AA0A4Data_pdtF\">emitWithAck(_:<wbr>_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Sends a message to the server, requesting an ack.</p>\n\n<p><strong>NOTE</strong>: It is up to the server send an ack back, just calling this method does not mean the server will ack.\nCheck that your server&rsquo;s api will ack the event being sent.</p>\n\n<p>If an error occurs trying to transform <code>items</code> into their socket representation, a <code><a href=\"../Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO5erroryA2CmF\">SocketClientEvent.error</a></code>\nwill be emitted. The structure of the error data is <code>[eventName, items, theError]</code></p>\n\n<p>Example:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"nf\">timingOut</span><span class=\"p\">(</span><span class=\"nv\">after</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span> <span class=\"k\">in</span>\n    <span class=\"o\">...</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketData.html\">SocketData</a></span><span class=\"o\">...</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/OnAckCallback.html\">OnAckCallback</a></span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The items to send with this event. May be left out.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>An <code><a href=\"../Classes/OnAckCallback.html\">OnAckCallback</a></code>. You must call the <code>timingOut(after:)</code> method before the event will be sent.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketRawView(im)emitWithAck:with:\"></a>\n                    <a name=\"//apple_ref/swift/Method/emitWithAck(_:with:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketRawView(im)emitWithAck:with:\">emitWithAck(_:<wbr>with:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Same as emitWithAck, but for Objective-C</p>\n\n<p><strong>NOTE</strong>: It is up to the server send an ack back, just calling this method does not mean the server will ack.\nCheck that your server&rsquo;s api will ack the event being sent.</p>\n\n<p>Example:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">,</span> <span class=\"nv\">with</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">])</span><span class=\"o\">.</span><span class=\"nf\">timingOut</span><span class=\"p\">(</span><span class=\"nv\">after</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span> <span class=\"k\">in</span>\n    <span class=\"o\">...</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">with</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/OnAckCallback.html\">OnAckCallback</a></span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The items to send with this event. Use <code>[]</code> to send nothing.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>An <code><a href=\"../Classes/OnAckCallback.html\">OnAckCallback</a></code>. You must call the <code>timingOut(after:)</code> method before the event will be sent.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Classes.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>Classes  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Section/Classes\" class=\"dashAnchor\"></a>\n\n    <a title=\"Classes  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      Classes  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>Classes</h1>\n            <p>The following classes are available globally.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketAckEmitter\"></a>\n                    <a name=\"//apple_ref/swift/Class/SocketAckEmitter\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketAckEmitter\">SocketAckEmitter</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A class that represents a waiting ack call.</p>\n\n<p><strong>NOTE</strong>: You should not store this beyond the life of the event handler.</p>\n\n                        <a href=\"Classes/SocketAckEmitter.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">final</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketAckEmitter</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)OnAckCallback\"></a>\n                    <a name=\"//apple_ref/swift/Class/OnAckCallback\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)OnAckCallback\">OnAckCallback</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A class that represents an emit that will request an ack that has not yet been sent.\nCall <code>timingOut(after:callback:)</code> to complete the emit\nExample:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"nf\">timingOut</span><span class=\"p\">(</span><span class=\"nv\">after</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span> <span class=\"k\">in</span>\n    <span class=\"o\">...</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                        <a href=\"Classes/OnAckCallback.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">final</span> <span class=\"kd\">class</span> <span class=\"kt\">OnAckCallback</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketAnyEvent\"></a>\n                    <a name=\"//apple_ref/swift/Class/SocketAnyEvent\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketAnyEvent\">SocketAnyEvent</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Represents some event that was received.</p>\n\n                        <a href=\"Classes/SocketAnyEvent.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">final</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketAnyEvent</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketIOClient\"></a>\n                    <a name=\"//apple_ref/swift/Class/SocketIOClient\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketIOClient\">SocketIOClient</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Represents a socket.io-client.</p>\n\n<p>Clients are created through a <code><a href=\"Classes/SocketManager.html\">SocketManager</a></code>, which owns the <code><a href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></code> that controls the connection to the server.</p>\n\n<p>For example:</p>\n<pre class=\"highlight swift\"><code><span class=\"c1\">// Create a socket for the /swift namespace</span>\n<span class=\"k\">let</span> <span class=\"nv\">socket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"nf\">socket</span><span class=\"p\">(</span><span class=\"nv\">forNamespace</span><span class=\"p\">:</span> <span class=\"s\">\"/swift\"</span><span class=\"p\">)</span>\n\n<span class=\"c1\">// Add some handlers and connect</span>\n</code></pre>\n\n<p><strong>NOTE</strong>: The client is not thread/queue safe, all interaction with the socket should be done on the <code>manager.handleQueue</code></p>\n\n                        <a href=\"Classes/SocketIOClient.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketIOClient</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketRawView\"></a>\n                    <a name=\"//apple_ref/swift/Class/SocketRawView\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketRawView\">SocketRawView</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Class that gives a backwards compatible way to cause an emit not to recursively check for Data objects.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"n\">rawEmitView</span><span class=\"o\">.</span><span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">,</span> <span class=\"n\">myObject</span><span class=\"p\">)</span>\n</code></pre>\n\n                        <a href=\"Classes/SocketRawView.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">final</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketRawView</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketRawAckView\"></a>\n                    <a name=\"//apple_ref/swift/Class/SocketRawAckView\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketRawAckView\">SocketRawAckView</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Class that gives a backwards compatible way to cause an emit not to recursively check for Data objects.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">ack</span><span class=\"o\">.</span><span class=\"n\">rawEmitView</span><span class=\"o\">.</span><span class=\"nf\">with</span><span class=\"p\">(</span><span class=\"n\">myObject</span><span class=\"p\">)</span>\n</code></pre>\n\n                        <a href=\"Classes/SocketRawAckView.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">final</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketRawAckView</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketEngine\"></a>\n                    <a name=\"//apple_ref/swift/Class/SocketEngine\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketEngine\">SocketEngine</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The class that handles the engine.io protocol and transports.\nSee <code><a href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a></code> and <code><a href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a></code> for transport specific methods.</p>\n\n                        <a href=\"Classes/SocketEngine.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketEngine</span><span class=\"p\">:</span>\n        <span class=\"kt\">NSObject</span><span class=\"p\">,</span> <span class=\"kt\">WebSocketDelegate</span><span class=\"p\">,</span> <span class=\"kt\">URLSessionDelegate</span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a></span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a></span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"Protocols/ConfigSettable.html\">ConfigSettable</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(cs)SocketManager\"></a>\n                    <a name=\"//apple_ref/swift/Class/SocketManager\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(cs)SocketManager\">SocketManager</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A manager for a socket.io connection.</p>\n\n<p>A <code>SocketManager</code> is responsible for multiplexing multiple namespaces through a single <code><a href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></code>.</p>\n\n<p>Example:</p>\n<pre class=\"highlight swift\"><code><span class=\"k\">let</span> <span class=\"nv\">manager</span> <span class=\"o\">=</span> <span class=\"kt\">SocketManager</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">(</span><span class=\"nv\">string</span><span class=\"p\">:</span><span class=\"s\">\"http://localhost:8080/\"</span><span class=\"p\">)</span><span class=\"o\">!</span><span class=\"p\">)</span>\n<span class=\"k\">let</span> <span class=\"nv\">defaultNamespaceSocket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"n\">defaultSocket</span>\n<span class=\"k\">let</span> <span class=\"nv\">swiftSocket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"nf\">socket</span><span class=\"p\">(</span><span class=\"nv\">forNamespace</span><span class=\"p\">:</span> <span class=\"s\">\"/swift\"</span><span class=\"p\">)</span>\n\n<span class=\"c1\">// defaultNamespaceSocket and swiftSocket both share a single connection to the server</span>\n</code></pre>\n\n<p>Sockets created through the manager are retained by the manager. So at the very least, a single strong reference\nto the manager must be maintained to keep sockets alive.</p>\n\n<p>To disconnect a socket and remove it from the manager, either call <code><a href=\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC10disconnectyyF\">SocketIOClient.disconnect()</a></code> on the socket,\nor call one of the <code>disconnectSocket</code> methods on this class.</p>\n\n<p><strong>NOTE</strong>: The manager is not thread/queue safe, all interaction with the manager should be done on the <code>handleQueue</code></p>\n\n                        <a href=\"Classes/SocketManager.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">open</span> <span class=\"kd\">class</span> <span class=\"kt\">SocketManager</span> <span class=\"p\">:</span> <span class=\"kt\">NSObject</span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a></span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"Protocols/SocketParsable.html\">SocketParsable</a></span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a></span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"Protocols/ConfigSettable.html\">ConfigSettable</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Enums/SocketAckStatus.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketAckStatus Enumeration Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Enum/SocketAckStatus\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketAckStatus Enumeration Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketAckStatus Enumeration Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketAckStatus</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketAckStatus</span> <span class=\"p\">:</span> <span class=\"kt\">String</span></code></pre>\n\n                </div>\n              </div>\n            <p>The status of an ack.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Cases\"></a>\n                <a name=\"//apple_ref/swift/Section/Cases\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Cases\"></a>\n                  <h3 class=\"section-name\"><p>Cases</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A9AckStatusO02noC0yA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/noAck\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A9AckStatusO02noC0yA2CmF\">noAck</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The ack timed out.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">noAck</span> <span class=\"o\">=</span> <span class=\"s\">\"NO ACK\"</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A9AckStatusO2eeoiySbSS_ACtFZ\"></a>\n                    <a name=\"//apple_ref/swift/Method/==(_:_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A9AckStatusO2eeoiySbSS_ACtFZ\">==(_:<wbr>_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Tests whether a string is equal to a given SocketAckStatus</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">static</span> <span class=\"kd\">func</span> <span class=\"o\">==</span> <span class=\"p\">(</span><span class=\"nv\">lhs</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">rhs</span><span class=\"p\">:</span> <span class=\"kt\">SocketAckStatus</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">Bool</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A9AckStatusO2eeoiySbAC_SStFZ\"></a>\n                    <a name=\"//apple_ref/swift/Method/==(_:_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A9AckStatusO2eeoiySbAC_SStFZ\">==(_:<wbr>_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Tests whether a string is equal to a given SocketAckStatus</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">static</span> <span class=\"kd\">func</span> <span class=\"o\">==</span> <span class=\"p\">(</span><span class=\"nv\">lhs</span><span class=\"p\">:</span> <span class=\"kt\">SocketAckStatus</span><span class=\"p\">,</span> <span class=\"nv\">rhs</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">Bool</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Enums/SocketClientEvent.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketClientEvent Enumeration Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Enum/SocketClientEvent\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketClientEvent Enumeration Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketClientEvent Enumeration Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketClientEvent</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketClientEvent</span> <span class=\"p\">:</span> <span class=\"kt\">String</span></code></pre>\n\n                </div>\n              </div>\n            <p>The set of events that are generated by the client.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Cases\"></a>\n                <a name=\"//apple_ref/swift/Section/Cases\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Cases\"></a>\n                  <h3 class=\"section-name\"><p>Cases</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ClientEventO7connectyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/connect\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ClientEventO7connectyA2CmF\">connect</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Emitted when the client connects. This is also called on a successful reconnection. A connect event gets one\ndata item: the namespace that was connected to.</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">connect</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"k\">guard</span> <span class=\"k\">let</span> <span class=\"nv\">nsp</span> <span class=\"o\">=</span> <span class=\"n\">data</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span> <span class=\"k\">as?</span> <span class=\"kt\">String</span> <span class=\"k\">else</span> <span class=\"p\">{</span> <span class=\"k\">return</span> <span class=\"p\">}</span>\n    <span class=\"c1\">// Some logic using the nsp</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">connect</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ClientEventO10disconnectyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/disconnect\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ClientEventO10disconnectyA2CmF\">disconnect</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Emitted when the socket has disconnected and will not attempt to try to reconnect.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">disconnect</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"c1\">// Some cleanup logic</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">disconnect</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ClientEventO5erroryA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/error\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ClientEventO5erroryA2CmF\">error</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Emitted when an error occurs.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">error</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"c1\">// Some logging</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">error</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ClientEventO4pingyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/ping\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ClientEventO4pingyA2CmF\">ping</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Emitted whenever the engine sends a ping.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">ping</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">_</span><span class=\"p\">,</span> <span class=\"n\">_</span> <span class=\"k\">in</span>\n  <span class=\"c1\">// Maybe keep track of latency?</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">ping</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ClientEventO4pongyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/pong\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ClientEventO4pongyA2CmF\">pong</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Emitted whenever the engine gets a pong.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">pong</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">_</span><span class=\"p\">,</span> <span class=\"n\">_</span> <span class=\"k\">in</span>\n  <span class=\"c1\">// Maybe keep track of latency?</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">pong</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ClientEventO9reconnectyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/reconnect\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ClientEventO9reconnectyA2CmF\">reconnect</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Emitted when the client begins the reconnection process.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">reconnect</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"c1\">// Some reconnect event logic</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">reconnect</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ClientEventO16reconnectAttemptyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/reconnectAttempt\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ClientEventO16reconnectAttemptyA2CmF\">reconnectAttempt</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Emitted each time the client tries to reconnect to the server.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">reconnectAttempt</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"c1\">// Some reconnect attempt logging</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">reconnectAttempt</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ClientEventO12statusChangeyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/statusChange\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ClientEventO12statusChangeyA2CmF\">statusChange</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Emitted every time there is a change in the client&rsquo;s status.</p>\n\n<p>The payload for data is [SocketIOClientStatus, Int]. Where the second item is the raw value. Use the second one\nif you are working in Objective-C.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">statusChange</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"c1\">// Some status changing logging</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">statusChange</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ClientEventO16websocketUpgradeyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/websocketUpgrade\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ClientEventO16websocketUpgradeyA2CmF\">websocketUpgrade</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Emitted when when upgrading the http connection to a websocket connection.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">websocketUpgrade</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"k\">let</span> <span class=\"nv\">headers</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"n\">data</span> <span class=\"k\">as</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n    <span class=\"c1\">// Some header logic</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">websocketUpgrade</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Enums/SocketEnginePacketType.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketEnginePacketType Enumeration Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Enum/SocketEnginePacketType\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketEnginePacketType Enumeration Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketEnginePacketType Enumeration Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketEnginePacketType</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketEnginePacketType</span> <span class=\"p\">:</span> <span class=\"kt\">Int</span></code></pre>\n\n                </div>\n              </div>\n            <p>Represents the type of engine.io packet types.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeOpen\"></a>\n                    <a name=\"//apple_ref/swift/Element/open\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeOpen\">open</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Open message.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"kd\">open</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeClose\"></a>\n                    <a name=\"//apple_ref/swift/Element/close\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeClose\">close</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Close message.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">close</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypePing\"></a>\n                    <a name=\"//apple_ref/swift/Element/ping\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypePing\">ping</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Ping message.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">ping</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypePong\"></a>\n                    <a name=\"//apple_ref/swift/Element/pong\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypePong\">pong</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Pong message.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">pong</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeMessage\"></a>\n                    <a name=\"//apple_ref/swift/Element/message\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeMessage\">message</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Regular message.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">message</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeUpgrade\"></a>\n                    <a name=\"//apple_ref/swift/Element/upgrade\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeUpgrade\">upgrade</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Upgrade message.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">upgrade</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeNoop\"></a>\n                    <a name=\"//apple_ref/swift/Element/noop\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeNoop\">noop</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>NOOP.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">noop</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Enums/SocketIOClientOption.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketIOClientOption Enumeration Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Enum/SocketIOClientOption\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketIOClientOption Enumeration Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketIOClientOption Enumeration Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketIOClientOption</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketIOClientOption</span> <span class=\"p\">:</span> <span class=\"kt\">ClientOption</span></code></pre>\n\n                </div>\n              </div>\n            <p>The options for a client.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO8compressyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/compress\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO8compressyA2CmF\">compress</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If given, the WebSocket transport will attempt to use compression.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">compress</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO13connectParamsyACSDySSypGcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/connectParams(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO13connectParamsyACSDySSypGcACmF\">connectParams(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A dictionary of GET parameters that will be included in the connect url.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">connectParams</span><span class=\"p\">([</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO7cookiesyACSaySo12NSHTTPCookieCGcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/cookies(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO7cookiesyACSaySo12NSHTTPCookieCGcACmF\">cookies(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>An array of cookies that will be sent during the initial connection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">cookies</span><span class=\"p\">([</span><span class=\"kt\">HTTPCookie</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO12extraHeadersyACSDyS2SGcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/extraHeaders(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO12extraHeadersyACSDyS2SGcACmF\">extraHeaders(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Any extra HTTP headers that should be sent during the initial connection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">extraHeaders</span><span class=\"p\">([</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO8forceNewyACSbcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/forceNew(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO8forceNewyACSbcACmF\">forceNew(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If passed <code>true</code>, will cause the client to always create a new engine. Useful for debugging,\nor when you want to be sure no state from previous engines is being carried over.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">forceNew</span><span class=\"p\">(</span><span class=\"kt\">Bool</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO12forcePollingyACSbcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/forcePolling(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO12forcePollingyACSbcACmF\">forcePolling(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If passed <code>true</code>, the only transport that will be used will be HTTP long-polling.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">forcePolling</span><span class=\"p\">(</span><span class=\"kt\">Bool</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO15forceWebsocketsyACSbcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/forceWebsockets(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO15forceWebsocketsyACSbcACmF\">forceWebsockets(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If passed <code>true</code>, the only transport that will be used will be WebSockets.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">forceWebsockets</span><span class=\"p\">(</span><span class=\"kt\">Bool</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO16enableSOCKSProxyyACSbcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/enableSOCKSProxy(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO16enableSOCKSProxyyACSbcACmF\">enableSOCKSProxy(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If passed <code>true</code>, the WebSocket stream will be configured with the enableSOCKSProxy <code>true</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">enableSOCKSProxy</span><span class=\"p\">(</span><span class=\"kt\">Bool</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO11handleQueueyACSo17OS_dispatch_queueCcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/handleQueue(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO11handleQueueyACSo17OS_dispatch_queueCcACmF\">handleQueue(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The queue that all interaction with the client should occur on. This is the queue that event handlers are\ncalled on.</p>\n\n<p><strong>This should be a serial queue! Concurrent queues are not supported and might cause crashes and races</strong>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">handleQueue</span><span class=\"p\">(</span><span class=\"kt\">DispatchQueue</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO3logyACSbcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/log(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO3logyACSbcACmF\">log(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If passed <code>true</code>, the client will log debug information. This should be turned off in production code.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">log</span><span class=\"p\">(</span><span class=\"kt\">Bool</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO6loggeryAcA0A6Logger_pcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/logger(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO6loggeryAcA0A6Logger_pcACmF\">logger(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Used to pass in a custom logger.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">logger</span><span class=\"p\">(</span><span class=\"kt\"><a href=\"../Protocols/SocketLogger.html\">SocketLogger</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO4pathyACSScACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/path(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO4pathyACSScACmF\">path(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A custom path to socket.io. Only use this if the socket.io server is configured to look for this path.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">path</span><span class=\"p\">(</span><span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO10reconnectsyACSbcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/reconnects(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO10reconnectsyACSbcACmF\">reconnects(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If passed <code>false</code>, the client will not reconnect when it loses connection. Useful if you want full control\nover when reconnects happen.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">reconnects</span><span class=\"p\">(</span><span class=\"kt\">Bool</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO17reconnectAttemptsyACSicACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/reconnectAttempts(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO17reconnectAttemptsyACSicACmF\">reconnectAttempts(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The number of times to try and reconnect before giving up. Pass <code>-1</code> to <a href=\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\">never give up</a>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">reconnectAttempts</span><span class=\"p\">(</span><span class=\"kt\">Int</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO13reconnectWaityACSicACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/reconnectWait(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO13reconnectWaityACSicACmF\">reconnectWait(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The minimum number of seconds to wait before reconnect attempts.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">reconnectWait</span><span class=\"p\">(</span><span class=\"kt\">Int</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO16reconnectWaitMaxyACSicACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/reconnectWaitMax(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO16reconnectWaitMaxyACSicACmF\">reconnectWaitMax(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The maximum number of seconds to wait before reconnect attempts.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">reconnectWaitMax</span><span class=\"p\">(</span><span class=\"kt\">Int</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO19randomizationFactoryACSdcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/randomizationFactor(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO19randomizationFactoryACSdcACmF\">randomizationFactor(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The randomization factor for calculating reconnect jitter.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">randomizationFactor</span><span class=\"p\">(</span><span class=\"kt\">Double</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO6secureyACSbcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/secure(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO6secureyACSbcACmF\">secure(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Set <code>true</code> if your server is using secure transports.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">secure</span><span class=\"p\">(</span><span class=\"kt\">Bool</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO8securityyAC10Starscream18CertificatePinning_pcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/security(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO8securityyAC10Starscream18CertificatePinning_pcACmF\">security(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Allows you to set which certs are valid. Useful for SSL pinning.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">security</span><span class=\"p\">(</span><span class=\"kt\">CertificatePinning</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO10selfSignedyACSbcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/selfSigned(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO10selfSignedyACSbcACmF\">selfSigned(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If you&rsquo;re using a self-signed set. Only use for development.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">selfSigned</span><span class=\"p\">(</span><span class=\"kt\">Bool</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO15sessionDelegateyACSo012NSURLSessionF0_pcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/sessionDelegate(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO15sessionDelegateyACSo012NSURLSessionF0_pcACmF\">sessionDelegate(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Sets an NSURLSessionDelegate for the underlying engine. Useful if you need to handle self-signed certs.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">sessionDelegate</span><span class=\"p\">(</span><span class=\"kt\">URLSessionDelegate</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO7versionyAcA0A9IOVersionOcACmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/version(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO7versionyAcA0A9IOVersionOcACmF\">version(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The version of socket.io being used. This should match the server version. Default is 3.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"nf\">version</span><span class=\"p\">(</span><span class=\"kt\"><a href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO11descriptionSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/description\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO11descriptionSSvp\">description</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The description of this option.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">description</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Operators\"></a>\n                <a name=\"//apple_ref/swift/Section/Operators\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Operators\"></a>\n                  <h3 class=\"section-name\"><p>Operators</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO2eeoiySbAC_ACtFZ\"></a>\n                    <a name=\"//apple_ref/swift/Method/==(_:_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO2eeoiySbAC_ACtFZ\">==(_:<wbr>_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Compares whether two options are the same.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">static</span> <span class=\"kd\">func</span> <span class=\"o\">==</span> <span class=\"p\">(</span><span class=\"nv\">lhs</span><span class=\"p\">:</span> <span class=\"kt\">SocketIOClientOption</span><span class=\"p\">,</span> <span class=\"nv\">rhs</span><span class=\"p\">:</span> <span class=\"kt\">SocketIOClientOption</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">Bool</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>lhs</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Left operand to compare.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>rhs</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Right operand to compare.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p><code>true</code> if the two are the same option.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Enums/SocketIOClientStatus.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketIOClientStatus Enumeration Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Enum/SocketIOClientStatus\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketIOClientStatus Enumeration Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketIOClientStatus Enumeration Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SSLSecurity.html\">SSLSecurity</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketClientManager.html\">SocketClientManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientStatus.html\">SocketIOClientStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <h1>SocketIOClientStatus</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  <pre class=\"highlight\"><code><span class=\"kd\">@objc</span> <span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketIOClientStatus</span> <span class=\"p\">:</span> <span class=\"kt\">Int</span></code></pre>\n\n                </div>\n              </div>\n            <p>Represents the state of the client.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketIOClientStatus@SocketIOClientStatusNotConnected\"></a>\n                    <a name=\"//apple_ref/swift/Element/notConnected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketIOClientStatus@SocketIOClientStatusNotConnected\">notConnected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The client has never been connected. Or the client has been reset.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight\"><code><span class=\"k\">case</span> <span class=\"n\">notConnected</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketIOClientStatus@SocketIOClientStatusDisconnected\"></a>\n                    <a name=\"//apple_ref/swift/Element/disconnected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketIOClientStatus@SocketIOClientStatusDisconnected\">disconnected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The client was once connected, but not anymore.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight\"><code><span class=\"k\">case</span> <span class=\"n\">disconnected</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketIOClientStatus@SocketIOClientStatusConnecting\"></a>\n                    <a name=\"//apple_ref/swift/Element/connecting\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketIOClientStatus@SocketIOClientStatusConnecting\">connecting</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The client is in the process of connecting.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight\"><code><span class=\"k\">case</span> <span class=\"n\">connecting</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketIOClientStatus@SocketIOClientStatusConnected\"></a>\n                    <a name=\"//apple_ref/swift/Element/connected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketIOClientStatus@SocketIOClientStatusConnected\">connected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The client is currently connected.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight\"><code><span class=\"k\">case</span> <span class=\"n\">connected</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2017 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2017-10-05)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.8.4</a>, a <a class=\"link\" href=\"http://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Enums/SocketIOStatus.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketIOStatus Enumeration Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Enum/SocketIOStatus\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketIOStatus Enumeration Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketIOStatus Enumeration Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketIOStatus</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketIOStatus</span> <span class=\"p\">:</span> <span class=\"kt\">Int</span><span class=\"p\">,</span> <span class=\"kt\">CustomStringConvertible</span></code></pre>\n\n                </div>\n              </div>\n            <p>Represents state of a manager or client.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Cases\"></a>\n                <a name=\"//apple_ref/swift/Section/Cases\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Cases\"></a>\n                  <h3 class=\"section-name\"><p>Cases</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusNotConnected\"></a>\n                    <a name=\"//apple_ref/swift/Element/notConnected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusNotConnected\">notConnected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The client/manager has never been connected. Or the client has been reset.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">notConnected</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusDisconnected\"></a>\n                    <a name=\"//apple_ref/swift/Element/disconnected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusDisconnected\">disconnected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The client/manager was once connected, but not anymore.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">disconnected</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusConnecting\"></a>\n                    <a name=\"//apple_ref/swift/Element/connecting\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusConnecting\">connecting</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The client/manager is in the process of connecting.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">connecting</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusConnected\"></a>\n                    <a name=\"//apple_ref/swift/Element/connected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusConnected\">connected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The client/manager is currently connected.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">connected</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8IOStatusO6activeSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/active\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8IOStatusO6activeSbvp\">active</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">active</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>True if this client/manager is connected/connecting to a server.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:s23CustomStringConvertibleP11descriptionSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/description\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:s23CustomStringConvertibleP11descriptionSSvp\">description</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">description</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Enums/SocketIOVersion.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketIOVersion Enumeration Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Enum/SocketIOVersion\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketIOVersion Enumeration Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketIOVersion Enumeration Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketIOVersion</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketIOVersion</span> <span class=\"p\">:</span> <span class=\"kt\">Int</span></code></pre>\n\n                </div>\n              </div>\n            <p>The socket.io version being used.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A9IOVersionO3twoyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/two\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A9IOVersionO3twoyA2CmF\">two</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>socket.io 2, engine.io 3</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">two</span> <span class=\"o\">=</span> <span class=\"mi\">2</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A9IOVersionO5threeyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/three\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A9IOVersionO5threeyA2CmF\">three</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>socket.io 3, engine.io 4</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">three</span> <span class=\"o\">=</span> <span class=\"mi\">3</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Enums/SocketParsableError.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketParsableError Enumeration Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Enum/SocketParsableError\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketParsableError Enumeration Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketParsableError Enumeration Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketParsableError</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketParsableError</span> <span class=\"p\">:</span> <span class=\"kt\">Error</span></code></pre>\n\n                </div>\n              </div>\n            <p>Errors that can be thrown during parsing.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Cases\"></a>\n                <a name=\"//apple_ref/swift/Section/Cases\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Cases\"></a>\n                  <h3 class=\"section-name\"><p>Cases</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A13ParsableErrorO16invalidDataArrayyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/invalidDataArray\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A13ParsableErrorO16invalidDataArrayyA2CmF\">invalidDataArray</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Thrown when a packet received has an invalid data array, or is missing the data array.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">invalidDataArray</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A13ParsableErrorO13invalidPacketyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/invalidPacket\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A13ParsableErrorO13invalidPacketyA2CmF\">invalidPacket</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Thrown when an malformed packet is received.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">invalidPacket</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A13ParsableErrorO17invalidPacketTypeyA2CmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/invalidPacketType\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A13ParsableErrorO17invalidPacketTypeyA2CmF\">invalidPacketType</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Thrown when the parser receives an unknown packet type.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">invalidPacketType</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Enums.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>Enumerations  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Section/Enumerations\" class=\"dashAnchor\"></a>\n\n    <a title=\"Enumerations  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      Enumerations  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>Enumerations</h1>\n            <p>The following enumerations are available globally.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A9AckStatusO\"></a>\n                    <a name=\"//apple_ref/swift/Enum/SocketAckStatus\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A9AckStatusO\">SocketAckStatus</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The status of an ack.</p>\n\n                        <a href=\"Enums/SocketAckStatus.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketAckStatus</span> <span class=\"p\">:</span> <span class=\"kt\">String</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A9IOVersionO\"></a>\n                    <a name=\"//apple_ref/swift/Enum/SocketIOVersion\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A9IOVersionO\">SocketIOVersion</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The socket.io version being used.</p>\n\n                        <a href=\"Enums/SocketIOVersion.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketIOVersion</span> <span class=\"p\">:</span> <span class=\"kt\">Int</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14IOClientOptionO\"></a>\n                    <a name=\"//apple_ref/swift/Enum/SocketIOClientOption\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14IOClientOptionO\">SocketIOClientOption</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The options for a client.</p>\n\n                        <a href=\"Enums/SocketIOClientOption.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketIOClientOption</span> <span class=\"p\">:</span> <span class=\"kt\">ClientOption</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ClientEventO\"></a>\n                    <a name=\"//apple_ref/swift/Enum/SocketClientEvent\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ClientEventO\">SocketClientEvent</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The set of events that are generated by the client.</p>\n\n                        <a href=\"Enums/SocketClientEvent.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketClientEvent</span> <span class=\"p\">:</span> <span class=\"kt\">String</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketIOStatus\"></a>\n                    <a name=\"//apple_ref/swift/Enum/SocketIOStatus\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketIOStatus\">SocketIOStatus</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Represents state of a manager or client.</p>\n\n                        <a href=\"Enums/SocketIOStatus.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketIOStatus</span> <span class=\"p\">:</span> <span class=\"kt\">Int</span><span class=\"p\">,</span> <span class=\"kt\">CustomStringConvertible</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@E@SocketEnginePacketType\"></a>\n                    <a name=\"//apple_ref/swift/Enum/SocketEnginePacketType\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@E@SocketEnginePacketType\">SocketEnginePacketType</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Represents the type of engine.io packet types.</p>\n\n                        <a href=\"Enums/SocketEnginePacketType.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketEnginePacketType</span> <span class=\"p\">:</span> <span class=\"kt\">Int</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A13ParsableErrorO\"></a>\n                    <a name=\"//apple_ref/swift/Enum/SocketParsableError\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A13ParsableErrorO\">SocketParsableError</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Errors that can be thrown during parsing.</p>\n\n                        <a href=\"Enums/SocketParsableError.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">enum</span> <span class=\"kt\">SocketParsableError</span> <span class=\"p\">:</span> <span class=\"kt\">Error</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Extensions.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>Extensions  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Section/Extensions\" class=\"dashAnchor\"></a>\n\n    <a title=\"Extensions  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      Extensions  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>Extensions</h1>\n            <p>The following extensions are available globally.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:Sa\"></a>\n                    <a name=\"//apple_ref/swift/Extension/Array\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:Sa\">Array</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">Array</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:Sb\"></a>\n                    <a name=\"//apple_ref/swift/Extension/Bool\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:Sb\">Bool</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">Bool</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:SD\"></a>\n                    <a name=\"//apple_ref/swift/Extension/Dictionary\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:SD\">Dictionary</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">Dictionary</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:Sd\"></a>\n                    <a name=\"//apple_ref/swift/Extension/Double\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:Sd\">Double</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">Double</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:Si\"></a>\n                    <a name=\"//apple_ref/swift/Extension/Int\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:Si\">Int</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">Int</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:objc(cs)NSArray\"></a>\n                    <a name=\"//apple_ref/swift/Extension/NSArray\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:objc(cs)NSArray\">NSArray</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">NSArray</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:10Foundation4DataV\"></a>\n                    <a name=\"//apple_ref/swift/Extension/Data\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:10Foundation4DataV\">Data</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">Data</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:objc(cs)NSData\"></a>\n                    <a name=\"//apple_ref/swift/Extension/NSData\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:objc(cs)NSData\">NSData</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">NSData</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:objc(cs)NSDictionary\"></a>\n                    <a name=\"//apple_ref/swift/Extension/NSDictionary\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:objc(cs)NSDictionary\">NSDictionary</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">NSDictionary</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:objc(cs)NSString\"></a>\n                    <a name=\"//apple_ref/swift/Extension/NSString\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:objc(cs)NSString\">NSString</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">NSString</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:objc(cs)NSNull\"></a>\n                    <a name=\"//apple_ref/swift/Extension/NSNull\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:objc(cs)NSNull\">NSNull</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">NSNull</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:SS\"></a>\n                    <a name=\"//apple_ref/swift/Extension/String\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:SS\">String</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">extension</span> <span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketData.html\">SocketData</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Guides.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>Guides  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Section/Guides\" class=\"dashAnchor\"></a>\n\n    <a title=\"Guides  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      Guides  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>Guides</h1>\n            <p>The following guides are available globally.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/documentation.15to16\"></a>\n                    <a name=\"//apple_ref/swift/Guide/15to16\" class=\"dashAnchor\"></a>\n                    <a class=\"direct-link\" href=\"15to16.html\">15to16</a>\n                    </code>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/documentation.FAQ\"></a>\n                    <a name=\"//apple_ref/swift/Guide/FAQ\" class=\"dashAnchor\"></a>\n                    <a class=\"direct-link\" href=\"faq.html\">FAQ</a>\n                    </code>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/documentation.12to13\"></a>\n                    <a name=\"//apple_ref/swift/Guide/12to13\" class=\"dashAnchor\"></a>\n                    <a class=\"direct-link\" href=\"12to13.html\">12to13</a>\n                    </code>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/ConfigSettable.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>ConfigSettable Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/ConfigSettable\" class=\"dashAnchor\"></a>\n\n    <a title=\"ConfigSettable Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      ConfigSettable Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>ConfigSettable</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">ConfigSettable</span></code></pre>\n\n                </div>\n              </div>\n            <p>Declares that a type can set configs from a <code><a href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a></code>.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO14ConfigSettableP10setConfigsyyAA0A21IOClientConfigurationVF\"></a>\n                    <a name=\"//apple_ref/swift/Method/setConfigs(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO14ConfigSettableP10setConfigsyyAA0A21IOClientConfigurationVF\">setConfigs(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when an <code>ConfigSettable</code> should set/update its configs from a given configuration.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">mutating</span> <span class=\"kd\">func</span> <span class=\"nf\">setConfigs</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>config</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The <code><a href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a></code> that should be used to set/update configs.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/SocketData.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketData Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/SocketData\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketData Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketData Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketData</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketData</span></code></pre>\n\n                </div>\n              </div>\n            <p>A marking protocol that says a type can be represented in a socket.io packet.</p>\n\n<p>Example:</p>\n<pre class=\"highlight swift\"><code><span class=\"kd\">struct</span> <span class=\"kt\">CustomData</span> <span class=\"p\">:</span> <span class=\"kt\">SocketData</span> <span class=\"p\">{</span>\n   <span class=\"k\">let</span> <span class=\"nv\">name</span><span class=\"p\">:</span> <span class=\"kt\">String</span>\n   <span class=\"k\">let</span> <span class=\"nv\">age</span><span class=\"p\">:</span> <span class=\"kt\">Int</span>\n\n   <span class=\"kd\">func</span> <span class=\"nf\">socketRepresentation</span><span class=\"p\">()</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">SocketData</span> <span class=\"p\">{</span>\n       <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"s\">\"name\"</span><span class=\"p\">:</span> <span class=\"n\">name</span><span class=\"p\">,</span> <span class=\"s\">\"age\"</span><span class=\"p\">:</span> <span class=\"n\">age</span><span class=\"p\">]</span>\n   <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n\n<span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">,</span> <span class=\"kt\">CustomData</span><span class=\"p\">(</span><span class=\"nv\">name</span><span class=\"p\">:</span> <span class=\"s\">\"Erik\"</span><span class=\"p\">,</span> <span class=\"nv\">age</span><span class=\"p\">:</span> <span class=\"mi\">24</span><span class=\"p\">))</span>\n</code></pre>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A4DataP20socketRepresentationAaB_pyKF\"></a>\n                    <a name=\"//apple_ref/swift/Method/socketRepresentation()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A4DataP20socketRepresentationAaB_pyKF\">socketRepresentation()</a>\n                    </code>\n                      <span class=\"declaration-note\">\n                        Default implementation\n                      </span>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A representation of self that can sent over socket.io.</p>\n\n                      </div>\n                      <h4>Default Implementation</h4>\n                      <div class=\"default_impl abstract\">\n                        <p>Default implementation. Only works for native Swift types and a few Foundation types.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">socketRepresentation</span><span class=\"p\">()</span> <span class=\"k\">throws</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">SocketData</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/SocketDataBufferable.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketDataBufferable Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/SocketDataBufferable\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketDataBufferable Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketDataBufferable Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketDataBufferable</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketDataBufferable</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>Says that a type will be able to buffer binary data before all data for an event has come in.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14DataBufferableP14waitingPacketsSayAA0A6PacketVGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/waitingPackets\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14DataBufferableP14waitingPacketsSayAA0A6PacketVGvp\">waitingPackets</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A list of packets that are waiting for binary data.</p>\n\n<p>The way that socket.io works all data should be sent directly after each packet.\nSo this should ideally be an array of one packet waiting for data.</p>\n\n<p><strong>This should not be modified directly.</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">waitingPackets</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\"><a href=\"../Structs/SocketPacket.html\">SocketPacket</a></span><span class=\"p\">]</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/SocketEngineClient.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketEngineClient Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/SocketEngineClient\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketEngineClient Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketEngineClient Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketEngineClient</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketEngineClient</span></code></pre>\n\n                </div>\n              </div>\n            <p>Declares that a type will be a delegate to an engine.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidErrorWithReason:\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidError(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidErrorWithReason:\">engineDidError(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine errors.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">engineDidError</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason the engine errored.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidCloseWithReason:\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidClose(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidCloseWithReason:\">engineDidClose(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine closes.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">engineDidClose</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason that the engine closed.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidOpenWithReason:\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidOpen(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidOpenWithReason:\">engineDidOpen(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine opens.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">engineDidOpen</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason the engine opened.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidReceivePing\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidReceivePing()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidReceivePing\">engineDidReceivePing()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine receives a ping message. Only called in socket.io &gt;3.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">engineDidReceivePing</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidReceivePong\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidReceivePong()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidReceivePong\">engineDidReceivePong()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine receives a pong message. Only called in socket.io 2.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">engineDidReceivePong</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidSendPing\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidSendPing()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidSendPing\">engineDidSendPing()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine sends a ping to the server. Only called in socket.io 2.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">engineDidSendPing</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidSendPong\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidSendPong()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidSendPong\">engineDidSendPong()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine sends a pong to the server. Only called in socket.io &gt;3.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">engineDidSendPong</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient(im)parseEngineMessage:\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseEngineMessage(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)parseEngineMessage:\">parseEngineMessage(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine has a message that must be parsed.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">parseEngineMessage</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">msg</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>msg</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The message that needs parsing.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient(im)parseEngineBinaryData:\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseEngineBinaryData(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)parseEngineBinaryData:\">parseEngineBinaryData(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine receives binary data.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">parseEngineBinaryData</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"kt\">Data</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data the engine received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidWebsocketUpgradeWithHeaders:\"></a>\n                    <a name=\"//apple_ref/swift/Method/engineDidWebsocketUpgrade(headers:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidWebsocketUpgradeWithHeaders:\">engineDidWebsocketUpgrade(headers:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when when upgrading the http connection to a websocket connection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">engineDidWebsocketUpgrade</span><span class=\"p\">(</span><span class=\"nv\">headers</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>headers</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The http headers.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/SocketEnginePollable.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketEnginePollable Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/SocketEnginePollable\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketEnginePollable Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketEnginePollable Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketEnginePollable</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketEnginePollable</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></span></code></pre>\n\n                </div>\n              </div>\n            <p>Protocol that is used to implement socket.io polling support</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14EnginePollableP11invalidatedSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/invalidated\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14EnginePollableP11invalidatedSbvp\">invalidated</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p><code>true</code> If engine&rsquo;s session has been invalidated.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">invalidated</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14EnginePollableP8postWaitSaySS3msg_yycSg10completiontGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/postWait\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14EnginePollableP8postWaitSaySS3msg_yycSg10completiontGvp\">postWait</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A queue of engine.io messages waiting for POSTing</p>\n\n<p><strong>You should not touch this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">postWait</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a></span><span class=\"p\">]</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14EnginePollableP7sessionSo12NSURLSessionCSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/session\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14EnginePollableP7sessionSo12NSURLSessionCSgvp\">session</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The URLSession that will be used for polling.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">session</span><span class=\"p\">:</span> <span class=\"kt\">URLSession</span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14EnginePollableP14waitingForPollSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/waitingForPoll\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14EnginePollableP14waitingForPollSbvp\">waitingForPoll</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p><code>true</code> if there is an outstanding poll. Trying to poll before the first is done will cause socket.io to\ndisconnect us.</p>\n\n<p><strong>Do not touch this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">waitingForPoll</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14EnginePollableP14waitingForPostSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/waitingForPost\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14EnginePollableP14waitingForPostSbvp\">waitingForPost</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p><code>true</code> if there is an outstanding post. Trying to post before the first is done will cause socket.io to\ndisconnect us.</p>\n\n<p><strong>Do not touch this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">waitingForPost</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14EnginePollableP6doPollyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/doPoll()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14EnginePollableP6doPollyyF\">doPoll()</a>\n                    </code>\n                      <span class=\"declaration-note\">\n                        Default implementation\n                      </span>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Call to send a long-polling request.</p>\n\n<p>You shouldn&rsquo;t need to call this directly, the engine should automatically maintain a long-poll request.</p>\n\n                      </div>\n                      <h4>Default Implementation</h4>\n                      <div class=\"default_impl abstract\">\n                        <p>Call to send a long-polling request.</p>\n\n<p>You shouldn&rsquo;t need to call this directly, the engine should automatically maintain a long-poll request.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">doPoll</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14EnginePollableP15sendPollMessage_8withType0H4Data10completionySS_AA0ac6PacketI0OSay10Foundation0J0VGyycSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/sendPollMessage(_:withType:withData:completion:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14EnginePollableP15sendPollMessage_8withType0H4Data10completionySS_AA0ac6PacketI0OSay10Foundation0J0VGyycSgtF\">sendPollMessage(_:<wbr>withType:<wbr>withData:<wbr>completion:<wbr>)</a>\n                    </code>\n                      <span class=\"declaration-note\">\n                        Default implementation\n                      </span>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Sends an engine.io message through the polling transport.</p>\n\n<p>You shouldn&rsquo;t call this directly, instead call the <code>write</code> method on <code><a href=\"../Classes/SocketEngine.html\">SocketEngine</a></code>.</p>\n\n                      </div>\n                      <h4>Default Implementation</h4>\n                      <div class=\"default_impl abstract\">\n                        <p>Sends an engine.io message through the polling transport.</p>\n\n<p>You shouldn&rsquo;t call this directly, instead call the <code>write</code> method on <code>SocketEngine</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">sendPollMessage</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">message</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">withType</span> <span class=\"nv\">type</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a></span><span class=\"p\">,</span> <span class=\"n\">withData</span> <span class=\"nv\">datas</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Data</span><span class=\"p\">],</span> <span class=\"nv\">completion</span><span class=\"p\">:</span> <span class=\"p\">(()</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>message</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The message to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withType</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The type of message to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withData</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data associated with this message.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14EnginePollableP11stopPollingyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/stopPolling()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14EnginePollableP11stopPollingyyF\">stopPolling()</a>\n                    </code>\n                      <span class=\"declaration-note\">\n                        Default implementation\n                      </span>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Call to stop polling and invalidate the URLSession.</p>\n\n                      </div>\n                      <h4>Default Implementation</h4>\n                      <div class=\"default_impl abstract\">\n                        <p>Call to stop polling and invalidate the URLSession.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">stopPolling</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/SocketEngineSpec.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketEngineSpec Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/SocketEngineSpec\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketEngineSpec Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketEngineSpec Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketEngineSpec</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketEngineSpec</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>Specifies a SocketEngine.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP6clientAA0aC6Client_pSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/client\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP6clientAA0aC6Client_pSgvp\">client</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The client for this engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">client</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a></span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP6closedSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/closed\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP6closedSbvp\">closed</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p><code>true</code> if this engine is closed.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">closed</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP8compressSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/compress\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP8compressSbvp\">compress</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code> the engine will attempt to use WebSocket compression.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">compress</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP9connectedSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/connected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP9connectedSbvp\">connected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p><code>true</code> if this engine is connected. Connected means that the initial poll connect has succeeded.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">connected</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP13connectParamsSDySSypGSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/connectParams\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP13connectParamsSDySSypGSgvp\">connectParams</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The connect parameters sent during a connect.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">connectParams</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP7cookiesSaySo12NSHTTPCookieCGSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/cookies\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP7cookiesSaySo12NSHTTPCookieCGSgvp\">cookies</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>An array of HTTPCookies that are sent during the connection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">cookies</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">HTTPCookie</span><span class=\"p\">]?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP11engineQueueSo17OS_dispatch_queueCvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/engineQueue\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP11engineQueueSo17OS_dispatch_queueCvp\">engineQueue</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The queue that all engine actions take place on.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">engineQueue</span><span class=\"p\">:</span> <span class=\"kt\">DispatchQueue</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP12extraHeadersSDyS2SGSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/extraHeaders\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP12extraHeadersSDyS2SGSgvp\">extraHeaders</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A dictionary of extra http headers that will be set during connection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">extraHeaders</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">]?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP11fastUpgradeSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/fastUpgrade\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP11fastUpgradeSbvp\">fastUpgrade</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>When <code>true</code>, the engine is in the process of switching to WebSockets.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">fastUpgrade</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP12forcePollingSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/forcePolling\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP12forcePollingSbvp\">forcePolling</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>When <code>true</code>, the engine will only use HTTP long-polling as a transport.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">forcePolling</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP15forceWebsocketsSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/forceWebsockets\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP15forceWebsocketsSbvp\">forceWebsockets</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>When <code>true</code>, the engine will only use WebSockets as a transport.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">forceWebsockets</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP7pollingSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/polling\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP7pollingSbvp\">polling</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code>, the engine is currently in HTTP long-polling mode.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">polling</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP7probingSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/probing\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP7probingSbvp\">probing</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code>, the engine is currently seeing whether it can upgrade to WebSockets.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">probing</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP3sidSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/sid\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP3sidSSvp\">sid</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The session id for this engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">sid</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP10socketPathSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/socketPath\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP10socketPathSSvp\">socketPath</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The path to engine.io.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">socketPath</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP10urlPolling10Foundation3URLVvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/urlPolling\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP10urlPolling10Foundation3URLVvp\">urlPolling</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The url for polling.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">urlPolling</span><span class=\"p\">:</span> <span class=\"kt\">URL</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP06urlWebA010Foundation3URLVvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/urlWebSocket\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP06urlWebA010Foundation3URLVvp\">urlWebSocket</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The url for WebSockets.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">urlWebSocket</span><span class=\"p\">:</span> <span class=\"kt\">URL</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP7versionAA0A9IOVersionOvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/version\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP7versionAA0A9IOVersionOvp\">version</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The version of engine.io being used. Default is three.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">version</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP9websocketSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/websocket\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP9websocketSbvp\">websocket</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code>, then the engine is currently in WebSockets mode.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@available</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"p\">,</span> <span class=\"n\">deprecated</span><span class=\"p\">,</span> <span class=\"nv\">message</span><span class=\"p\">:</span> <span class=\"s\">\"No longer needed, if we're not polling, then we must be doing websockets\"</span><span class=\"p\">)</span>\n<span class=\"k\">var</span> <span class=\"nv\">websocket</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP2ws10Starscream03WebA0CSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/ws\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP2ws10Starscream03WebA0CSgvp\">ws</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The WebSocket for this engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">ws</span><span class=\"p\">:</span> <span class=\"kt\">WebSocket</span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Initializers\"></a>\n                <a name=\"//apple_ref/swift/Section/Initializers\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Initializers\"></a>\n                  <h3 class=\"section-name\"><p>Initializers</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP6client3url7optionsxAA0aC6Client_p_10Foundation3URLVSDySSypGSgtcfc\"></a>\n                    <a name=\"//apple_ref/swift/Method/init(client:url:options:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP6client3url7optionsxAA0aC6Client_p_10Foundation3URLVSDySSypGSgtcfc\">init(client:<wbr>url:<wbr>options:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Creates a new engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"nf\">init</span><span class=\"p\">(</span><span class=\"nv\">client</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a></span><span class=\"p\">,</span> <span class=\"nv\">url</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">,</span> <span class=\"nv\">options</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>client</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The client for this engine.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>url</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The url for this engine.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>options</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The options for this engine.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP7connectyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/connect()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP7connectyyF\">connect()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Starts the connection to the server.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">connect</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP8didError6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/didError(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP8didError6reasonySS_tF\">didError(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when an error happens during execution. Causes a disconnection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">didError</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP10disconnect6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/disconnect(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP10disconnect6reasonySS_tF\">disconnect(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnects from the server.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">disconnect</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason for the disconnection. This is communicated up to the client.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP13doFastUpgradeyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/doFastUpgrade()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP13doFastUpgradeyyF\">doFastUpgrade()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called to switch from HTTP long-polling to WebSockets. After calling this method the engine will be in\nWebSocket mode.</p>\n\n<p><strong>You shouldn&rsquo;t call this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">doFastUpgrade</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP024flushWaitingForPostToWebA0yyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/flushWaitingForPostToWebSocket()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP024flushWaitingForPostToWebA0yyF\">flushWaitingForPostToWebSocket()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Causes any packets that were waiting for POSTing to be sent through the WebSocket. This happens because when\nthe engine is attempting to upgrade to WebSocket it does not do any POSTing.</p>\n\n<p><strong>You shouldn&rsquo;t call this directly</strong></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">flushWaitingForPostToWebSocket</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP05parseC4Datayy10Foundation0F0VF\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseEngineData(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP05parseC4Datayy10Foundation0F0VF\">parseEngineData(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Parses raw binary received from engine.io.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">parseEngineData</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"kt\">Data</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data to parse.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP05parseC7MessageyySSF\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseEngineMessage(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP05parseC7MessageyySSF\">parseEngineMessage(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Parses a raw engine.io packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">parseEngineMessage</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">message</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>message</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The message to parse.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP5write_8withType0F4Data10completionySS_AA0ac6PacketG0OSay10Foundation0H0VGyycSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/write(_:withType:withData:completion:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP5write_8withType0F4Data10completionySS_AA0ac6PacketG0OSay10Foundation0H0VGyycSgtF\">write(_:<wbr>withType:<wbr>withData:<wbr>completion:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Writes a message to engine.io, independent of transport.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">write</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">msg</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">withType</span> <span class=\"nv\">type</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a></span><span class=\"p\">,</span> <span class=\"n\">withData</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Data</span><span class=\"p\">],</span> <span class=\"nv\">completion</span><span class=\"p\">:</span> <span class=\"p\">(()</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>msg</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The message to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>type</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The type of this message.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Any data that this message has.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>completion</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Callback called on transport write completion.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/SocketEngineWebsocket.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketEngineWebsocket Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/SocketEngineWebsocket\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketEngineWebsocket Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketEngineWebsocket Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketEngineWebsocket</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketEngineWebsocket</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></span></code></pre>\n\n                </div>\n              </div>\n            <p>Protocol that is used to implement socket.io WebSocket support</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A15EngineWebsocketP11wsConnectedSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/wsConnected\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A15EngineWebsocketP11wsConnectedSbvp\">wsConnected</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Whether or not the ws is connected</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">wsConnected</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A15EngineWebsocketP07sendWebA7Message_8withType0H4Data10completionySS_AA0ac6PacketI0OSay10Foundation0J0VGyycSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/sendWebSocketMessage(_:withType:withData:completion:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A15EngineWebsocketP07sendWebA7Message_8withType0H4Data10completionySS_AA0ac6PacketI0OSay10Foundation0J0VGyycSgtF\">sendWebSocketMessage(_:<wbr>withType:<wbr>withData:<wbr>completion:<wbr>)</a>\n                    </code>\n                      <span class=\"declaration-note\">\n                        Default implementation\n                      </span>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Sends an engine.io message through the WebSocket transport.</p>\n\n<p>You shouldn&rsquo;t call this directly, instead call the <code>write</code> method on <code><a href=\"../Classes/SocketEngine.html\">SocketEngine</a></code>.</p>\n\n                      </div>\n                      <h4>Default Implementation</h4>\n                      <div class=\"default_impl abstract\">\n                        <p>Sends an engine.io message through the WebSocket transport.</p>\n\n<p>You shouldn&rsquo;t call this directly, instead call the <code>write</code> method on <code>SocketEngine</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">sendWebSocketMessage</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">str</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span>\n                          <span class=\"n\">withType</span> <span class=\"nv\">type</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a></span><span class=\"p\">,</span>\n                          <span class=\"n\">withData</span> <span class=\"nv\">datas</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Data</span><span class=\"p\">],</span>\n                          <span class=\"nv\">completion</span><span class=\"p\">:</span> <span class=\"p\">(()</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>message</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The message to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withType</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The type of message to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withData</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data associated with this message.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>completion</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Callback called on transport write completion.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/SocketIOClientSpec.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketIOClientSpec Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/SocketIOClientSpec\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketIOClientSpec Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketIOClientSpec Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketIOClientSpec</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketIOClientSpec</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>Defines the interface for a SocketIOClient.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP10anyHandleryAA0A8AnyEventCcSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/anyHandler\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP10anyHandleryAA0A8AnyEventCcSgvp\">anyHandler</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A handler that will be called on any event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">anyHandler</span><span class=\"p\">:</span> <span class=\"p\">((</span><span class=\"kt\"><a href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP8handlersSayAA0A12EventHandlerVGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/handlers\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP8handlersSayAA0A12EventHandlerVGvp\">handlers</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The array of handlers for this socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">handlers</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\"><a href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a></span><span class=\"p\">]</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP7managerAA0a7ManagerD0_pSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/manager\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP7managerAA0a7ManagerD0_pSgvp\">manager</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The manager for this socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">manager</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a></span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP3nspSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/nsp\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP3nspSSvp\">nsp</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The namespace that this socket is currently connected to.</p>\n\n<p><strong>Must</strong> start with a <code>/</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">nsp</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP11rawEmitViewAA0a3RawG0Cvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/rawEmitView\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP11rawEmitViewAA0a3RawG0Cvp\">rawEmitView</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A view into this socket where emits do not check for binary data.</p>\n\n<p>Usage:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"n\">rawEmitView</span><span class=\"o\">.</span><span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">,</span> <span class=\"n\">myObject</span><span class=\"p\">)</span>\n</code></pre>\n\n<p><strong>NOTE</strong>: It is not safe to hold on to this view beyond the life of the socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">rawEmitView</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketRawView.html\">SocketRawView</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP3sidSSSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/sid\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP3sidSSSgvp\">sid</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The id of this socket.io connect. This is different from the sid of the engine.io connection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">sid</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP6statusAA0A8IOStatusOvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/status\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP6statusAA0A8IOStatusOvp\">status</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The status of this client.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">status</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP7connect11withPayloadySDySSypGSg_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/connect(withPayload:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP7connect11withPayloadySDySSypGSg_tF\">connect(withPayload:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Connect to the server. The same as calling <code>connect(timeoutAfter:withHandler:)</code> with a timeout of 0.</p>\n\n<p>Only call after adding your event listeners, unless you know what you&rsquo;re doing.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">connect</span><span class=\"p\">(</span><span class=\"n\">withPayload</span> <span class=\"nv\">payload</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>payload</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>An optional payload sent on connect</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP7connect11withPayload12timeoutAfter0F7HandlerySDySSypGSg_SdyycSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/connect(withPayload:timeoutAfter:withHandler:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP7connect11withPayload12timeoutAfter0F7HandlerySDySSypGSg_SdyycSgtF\">connect(withPayload:<wbr>timeoutAfter:<wbr>withHandler:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Connect to the server. If we aren&rsquo;t connected after <code>timeoutAfter</code> seconds, then <code>withHandler</code> is called.</p>\n\n<p>Only call after adding your event listeners, unless you know what you&rsquo;re doing.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">connect</span><span class=\"p\">(</span><span class=\"n\">withPayload</span> <span class=\"nv\">payload</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?,</span> <span class=\"nv\">timeoutAfter</span><span class=\"p\">:</span> <span class=\"kt\">Double</span><span class=\"p\">,</span> <span class=\"n\">withHandler</span> <span class=\"nv\">handler</span><span class=\"p\">:</span> <span class=\"p\">(()</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withPayload</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>An optional payload sent on connect</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>timeoutAfter</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The number of seconds after which if we are not connected we assume the connection\n                      has failed. Pass 0 to never timeout.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>handler</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The handler to call when the client fails to connect.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP10didConnect11toNamespace7payloadySS_SDySSypGSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/didConnect(toNamespace:payload:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP10didConnect11toNamespace7payloadySS_SDySSypGSgtF\">didConnect(toNamespace:<wbr>payload:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the client connects to a namespace. If the client was created with a namespace upfront,\nthen this is only called when the client connects to that namespace.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">didConnect</span><span class=\"p\">(</span><span class=\"n\">toNamespace</span> <span class=\"nv\">namespace</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">payload</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>toNamespace</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The namespace that was connected to.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP13didDisconnect6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/didDisconnect(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP13didDisconnect6reasonySS_tF\">didDisconnect(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the client has disconnected from socket.io.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">didDisconnect</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason for the disconnection.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP8didError6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/didError(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP8didError6reasonySS_tF\">didError(reason:<wbr>)</a>\n                    </code>\n                      <span class=\"declaration-note\">\n                        Default implementation\n                      </span>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the client encounters an error.</p>\n\n                      </div>\n                      <h4>Default Implementation</h4>\n                      <div class=\"default_impl abstract\">\n                        <p>Default implementation.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">didError</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason for the disconnection.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP10disconnectyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/disconnect()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP10disconnectyyF\">disconnect()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnects the socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">disconnect</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP4emit__10completionySS_AA0A4Data_pdyycSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emit(_:_:completion:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP4emit__10completionySS_AA0A4Data_pdyycSgtF\">emit(_:<wbr>_:<wbr>completion:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Send an event to the server, with optional data items and optional write completion handler.</p>\n\n<p>If an error occurs trying to transform <code>items</code> into their socket representation, a <code><a href=\"../Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO5erroryA2CmF\">SocketClientEvent.error</a></code>\nwill be emitted. The structure of the error data is <code>[eventName, items, theError]</code></p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketData.html\">SocketData</a></span><span class=\"o\">...</span><span class=\"p\">,</span> <span class=\"nv\">completion</span><span class=\"p\">:</span> <span class=\"p\">(()</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The items to send with this event. May be left out.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>completion</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Callback called on transport write completion.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP7emitAck_4withySi_SayypGtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emitAck(_:with:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP7emitAck_4withySi_SayypGtF\">emitAck(_:<wbr>with:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Call when you wish to tell the server that you&rsquo;ve received the event for <code>ack</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">emitAck</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">ack</span><span class=\"p\">:</span> <span class=\"kt\">Int</span><span class=\"p\">,</span> <span class=\"n\">with</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>ack</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The ack number.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>with</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data for this ack.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP11emitWithAckyAA02OnG8CallbackCSS_AA0A4Data_pdtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emitWithAck(_:_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP11emitWithAckyAA02OnG8CallbackCSS_AA0A4Data_pdtF\">emitWithAck(_:<wbr>_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Sends a message to the server, requesting an ack.</p>\n\n<p><strong>NOTE</strong>: It is up to the server send an ack back, just calling this method does not mean the server will ack.\nCheck that your server&rsquo;s api will ack the event being sent.</p>\n\n<p>If an error occurs trying to transform <code>items</code> into their socket representation, a <code><a href=\"../Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO5erroryA2CmF\">SocketClientEvent.error</a></code>\nwill be emitted. The structure of the error data is <code>[eventName, items, theError]</code></p>\n\n<p>Example:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"nf\">timingOut</span><span class=\"p\">(</span><span class=\"nv\">after</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span> <span class=\"k\">in</span>\n    <span class=\"o\">...</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketData.html\">SocketData</a></span><span class=\"o\">...</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/OnAckCallback.html\">OnAckCallback</a></span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The items to send with this event. May be left out.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>An <code><a href=\"../Classes/OnAckCallback.html\">OnAckCallback</a></code>. You must call the <code>timingOut(after:)</code> method before the event will be sent.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP9handleAck_4dataySi_SayypGtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/handleAck(_:data:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP9handleAck_4dataySi_SayypGtF\">handleAck(_:<wbr>data:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when socket.io has acked one of our emits. Causes the corresponding ack callback to be called.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">handleAck</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">ack</span><span class=\"p\">:</span> <span class=\"kt\">Int</span><span class=\"p\">,</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>ack</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The number for this ack.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data sent back with this ack.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP17handleClientEvent_4datayAA0afG0O_SayypGtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/handleClientEvent(_:data:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP17handleClientEvent_4datayAA0afG0O_SayypGtF\">handleClientEvent(_:<wbr>data:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called on socket.io specific events.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">handleClientEvent</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></span><span class=\"p\">,</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">])</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The <code><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></code>.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data for this event.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP11handleEvent_4data17isInternalMessage7withAckySS_SayypGSbSitF\"></a>\n                    <a name=\"//apple_ref/swift/Method/handleEvent(_:data:isInternalMessage:withAck:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP11handleEvent_4data17isInternalMessage7withAckySS_SayypGSbSitF\">handleEvent(_:<wbr>data:<wbr>isInternalMessage:<wbr>withAck:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when we get an event from socket.io.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">handleEvent</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">],</span> <span class=\"nv\">isInternalMessage</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span><span class=\"p\">,</span> <span class=\"n\">withAck</span> <span class=\"nv\">ack</span><span class=\"p\">:</span> <span class=\"kt\">Int</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The name of the event.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data that was sent with this event.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>isInternalMessage</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Whether this event was sent internally. If <code>true</code> it is always sent to handlers.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>ack</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>If &gt; 0 then this event expects to get an ack back from the client.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP12handlePacketyyAA0aF0VF\"></a>\n                    <a name=\"//apple_ref/swift/Method/handlePacket(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP12handlePacketyyAA0aF0VF\">handlePacket(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Causes a client to handle a socket.io packet. The namespace for the packet must match the namespace of the\nsocket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">handlePacket</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">packet</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketPacket.html\">SocketPacket</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>packet</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The packet to handle.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP14leaveNamespaceyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/leaveNamespace()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP14leaveNamespaceyyF\">leaveNamespace()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Call when you wish to leave a namespace and disconnect this socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">leaveNamespace</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP13joinNamespace11withPayloadySDySSypGSg_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/joinNamespace(withPayload:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP13joinNamespace11withPayloadySDySSypGSg_tF\">joinNamespace(withPayload:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Joins <code><a href=\"../Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP3nspSSvp\">nsp</a></code>. You shouldn&rsquo;t need to call this directly, instead call <code>connect</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">joinNamespace</span><span class=\"p\">(</span><span class=\"n\">withPayload</span> <span class=\"nv\">payload</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withPayload</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The payload to connect when joining this namespace</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP3off11clientEventyAA0a6ClientG0O_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/off(clientEvent:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP3off11clientEventyAA0a6ClientG0O_tF\">off(clientEvent:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes handler(s) for a client event.</p>\n\n<p>If you wish to remove a client event handler, call the <code><a href=\"../Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP3off2idy10Foundation4UUIDV_tF\">off(id:)</a></code> with the UUID received from its <code>on</code> call.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">off</span><span class=\"p\">(</span><span class=\"n\">clientEvent</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>clientEvent</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to remove handlers for.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP3offyySSF\"></a>\n                    <a name=\"//apple_ref/swift/Method/off(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP3offyySSF\">off(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes handler(s) based on an event name.</p>\n\n<p>If you wish to remove a specific event, call the <code><a href=\"../Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP3off2idy10Foundation4UUIDV_tF\">off(id:)</a></code> with the UUID received from its <code>on</code> call.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">off</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to remove handlers for.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP3off2idy10Foundation4UUIDV_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/off(id:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP3off2idy10Foundation4UUIDV_tF\">off(id:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes a handler with the specified UUID gotten from an <code>on</code> or <code>once</code></p>\n\n<p>If you want to remove all events for an event, call the off <code><a href=\"../Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP3offyySSF\">off(_:)</a></code> method with the event name.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">off</span><span class=\"p\">(</span><span class=\"nv\">id</span><span class=\"p\">:</span> <span class=\"kt\">UUID</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>id</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The UUID of the handler you wish to remove.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP2on_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\"></a>\n                    <a name=\"//apple_ref/swift/Method/on(_:callback:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP2on_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\">on(_:<wbr>callback:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a handler for an event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">callback</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">UUID</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event name for this handler.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>callback</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback that will execute when this event is received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A unique id for the handler that can be used to remove it.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP2on11clientEvent8callback10Foundation4UUIDVAA0a6ClientG0O_ySayypG_AA0A10AckEmitterCtctF\"></a>\n                    <a name=\"//apple_ref/swift/Method/on(clientEvent:callback:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP2on11clientEvent8callback10Foundation4UUIDVAA0a6ClientG0O_ySayypG_AA0A10AckEmitterCtctF\">on(clientEvent:<wbr>callback:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a handler for a client event.</p>\n\n<p>Example:</p>\n<pre class=\"highlight swift\"><code><span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">connect</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"o\">...</span>\n<span class=\"p\">}</span>\n</code></pre>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"n\">clientEvent</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></span><span class=\"p\">,</span> <span class=\"nv\">callback</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">UUID</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event for this handler.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>callback</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback that will execute when this event is received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A unique id for the handler that can be used to remove it.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP4once11clientEvent8callback10Foundation4UUIDVAA0a6ClientG0O_ySayypG_AA0A10AckEmitterCtctF\"></a>\n                    <a name=\"//apple_ref/swift/Method/once(clientEvent:callback:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP4once11clientEvent8callback10Foundation4UUIDVAA0a6ClientG0O_ySayypG_AA0A10AckEmitterCtctF\">once(clientEvent:<wbr>callback:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a single-use handler for a client event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">once</span><span class=\"p\">(</span><span class=\"n\">clientEvent</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a></span><span class=\"p\">,</span> <span class=\"nv\">callback</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">UUID</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>clientEvent</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event for this handler.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>callback</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback that will execute when this event is received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A unique id for the handler that can be used to remove it.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP4once_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\"></a>\n                    <a name=\"//apple_ref/swift/Method/once(_:callback:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP4once_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\">once(_:<wbr>callback:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a single-use handler for an event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">once</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">callback</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">UUID</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event name for this handler.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>callback</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback that will execute when this event is received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A unique id for the handler that can be used to remove it.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP5onAnyyyyAA0aF5EventCcF\"></a>\n                    <a name=\"//apple_ref/swift/Method/onAny(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP5onAnyyyyAA0aF5EventCcF\">onAny(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Adds a handler that will be called on every event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">onAny</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">handler</span><span class=\"p\">:</span> <span class=\"kd\">@escaping</span> <span class=\"p\">(</span><span class=\"kt\"><a href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>handler</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The callback that will execute whenever an event is received.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP17removeAllHandlersyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/removeAllHandlers()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP17removeAllHandlersyyF\">removeAllHandlers()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes all handlers.</p>\n\n<p>Can be used after disconnecting to break any potential remaining retain cycles.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">removeAllHandlers</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP15setReconnecting6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/setReconnecting(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP15setReconnecting6reasonySS_tF\">setReconnecting(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Puts the socket back into the connecting state.\nCalled when the manager detects a broken connection, or when a manual reconnect is triggered.</p>\n\n<p>parameter reason: The reason this socket is going reconnecting.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">setReconnecting</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/SocketLogger.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketLogger Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/SocketLogger\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketLogger Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketLogger Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketLogger</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketLogger</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>Represents a class will log client events.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6LoggerP3logSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/log\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6LoggerP3logSbvp\">log</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Whether to log or not</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">log</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6LoggerP3log_4typeySSyXK_SStF\"></a>\n                    <a name=\"//apple_ref/swift/Method/log(_:type:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6LoggerP3log_4typeySSyXK_SStF\">log(_:<wbr>type:<wbr>)</a>\n                    </code>\n                      <span class=\"declaration-note\">\n                        Default implementation\n                      </span>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Normal log messages</p>\n\n                      </div>\n                      <h4>Default Implementation</h4>\n                      <div class=\"default_impl abstract\">\n                        <p>Default implementation.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">log</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">message</span><span class=\"p\">:</span> <span class=\"kd\">@autoclosure</span> <span class=\"p\">()</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">type</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>message</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The message being logged. Can include <code>%@</code> that will be replaced with <code>args</code></p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>type</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The type of entity that called for logging.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>args</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Any args that should be inserted into the message. May be left out.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6LoggerP5error_4typeySSyXK_SStF\"></a>\n                    <a name=\"//apple_ref/swift/Method/error(_:type:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6LoggerP5error_4typeySSyXK_SStF\">error(_:<wbr>type:<wbr>)</a>\n                    </code>\n                      <span class=\"declaration-note\">\n                        Default implementation\n                      </span>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Error Messages</p>\n\n                      </div>\n                      <h4>Default Implementation</h4>\n                      <div class=\"default_impl abstract\">\n                        <p>Default implementation.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">error</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">message</span><span class=\"p\">:</span> <span class=\"kd\">@autoclosure</span> <span class=\"p\">()</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">type</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>message</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The message being logged. Can include <code>%@</code> that will be replaced with <code>args</code></p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>type</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The type of entity that called for logging.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>args</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Any args that should be inserted into the message. May be left out.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/SocketManagerSpec.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketManagerSpec Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/SocketManagerSpec\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketManagerSpec Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketManagerSpec Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketManagerSpec</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketManagerSpec</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a></span></code></pre>\n\n                </div>\n              </div>\n            <p>A manager for a socket.io connection.</p>\n\n<p>A <code>SocketManagerSpec</code> is responsible for multiplexing multiple namespaces through a single <code><a href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></code>.</p>\n\n<p>Example with <code><a href=\"../Classes/SocketManager.html\">SocketManager</a></code>:</p>\n<pre class=\"highlight swift\"><code><span class=\"k\">let</span> <span class=\"nv\">manager</span> <span class=\"o\">=</span> <span class=\"kt\">SocketManager</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">(</span><span class=\"nv\">string</span><span class=\"p\">:</span><span class=\"s\">\"http://localhost:8080/\"</span><span class=\"p\">)</span><span class=\"o\">!</span><span class=\"p\">)</span>\n<span class=\"k\">let</span> <span class=\"nv\">defaultNamespaceSocket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"n\">defaultSocket</span>\n<span class=\"k\">let</span> <span class=\"nv\">swiftSocket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"nf\">socket</span><span class=\"p\">(</span><span class=\"nv\">forNamespace</span><span class=\"p\">:</span> <span class=\"s\">\"/swift\"</span><span class=\"p\">)</span>\n\n<span class=\"c1\">// defaultNamespaceSocket and swiftSocket both share a single connection to the server</span>\n</code></pre>\n\n<p>Sockets created through the manager are retained by the manager. So at the very least, a single strong reference\nto the manager must be maintained to keep sockets alive.</p>\n\n<p>To disconnect a socket and remove it from the manager, either call <code><a href=\"../Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC10disconnectyyF\">SocketIOClient.disconnect()</a></code> on the socket,\nor call one of the <code>disconnectSocket</code> methods on this class.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP07defaultA0AA0A8IOClientCvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/defaultSocket\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP07defaultA0AA0A8IOClientCvp\">defaultSocket</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Returns the socket associated with the default namespace (&ldquo;/&rdquo;).</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">defaultSocket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP6engineAA0a6EngineD0_pSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/engine\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP6engineAA0a6EngineD0_pSgvp\">engine</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The engine for this manager.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">engine</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP8forceNewSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/forceNew\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP8forceNewSbvp\">forceNew</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code> then every time <code>connect</code> is called, a new engine will be created.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">forceNew</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP11handleQueueSo17OS_dispatch_queueCvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/handleQueue\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP11handleQueueSo17OS_dispatch_queueCvp\">handleQueue</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The queue that all interaction with the client should occur on. This is the queue that event handlers are\ncalled on.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">handleQueue</span><span class=\"p\">:</span> <span class=\"kt\">DispatchQueue</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP4nspsSDySSAA0A8IOClientCGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/nsps\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP4nspsSDySSAA0A8IOClientCGvp\">nsps</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The sockets in this manager indexed by namespace.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">nsps</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">]</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP10reconnectsSbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/reconnects\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP10reconnectsSbvp\">reconnects</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If <code>true</code>, this manager will try and reconnect on any disconnects.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">reconnects</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP13reconnectWaitSivp\"></a>\n                    <a name=\"//apple_ref/swift/Property/reconnectWait\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP13reconnectWaitSivp\">reconnectWait</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The minimum number of seconds to wait before attempting to reconnect.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">reconnectWait</span><span class=\"p\">:</span> <span class=\"kt\">Int</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP16reconnectWaitMaxSivp\"></a>\n                    <a name=\"//apple_ref/swift/Property/reconnectWaitMax\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP16reconnectWaitMaxSivp\">reconnectWaitMax</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The maximum number of seconds to wait before attempting to reconnect.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">reconnectWaitMax</span><span class=\"p\">:</span> <span class=\"kt\">Int</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP19randomizationFactorSdvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/randomizationFactor\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP19randomizationFactorSdvp\">randomizationFactor</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The randomization factor for calculating reconnect jitter.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">randomizationFactor</span><span class=\"p\">:</span> <span class=\"kt\">Double</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP9socketURL10Foundation0F0Vvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/socketURL\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP9socketURL10Foundation0F0Vvp\">socketURL</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The URL of the socket.io server.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP6statusAA0A8IOStatusOvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/status\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP6statusAA0A8IOStatusOvp\">status</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The status of this manager.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">status</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP7versionAA0A9IOVersionOvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/version\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP7versionAA0A9IOVersionOvp\">version</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The version of socket.io in use.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">var</span> <span class=\"nv\">version</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP7connectyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/connect()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP7connectyyF\">connect()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Connects the underlying transport.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">connect</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP07connectA0_11withPayloadyAA0A8IOClientC_SDySSypGSgtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/connectSocket(_:withPayload:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP07connectA0_11withPayloadyAA0A8IOClientC_SDySSypGSgtF\">connectSocket(_:<wbr>withPayload:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Connects a socket through this manager&rsquo;s engine.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">connectSocket</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">socket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">,</span> <span class=\"nv\">withPayload</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">String</span> <span class=\"p\">:</span> <span class=\"kt\">Any</span><span class=\"p\">]?)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socket</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The socket who we should connect through this manager.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withPayload</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Optional payload to send on connect</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP13didDisconnect6reasonySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/didDisconnect(reason:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP13didDisconnect6reasonySS_tF\">didDisconnect(reason:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the manager has disconnected from socket.io.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">didDisconnect</span><span class=\"p\">(</span><span class=\"nv\">reason</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>reason</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The reason for the disconnection.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP10disconnectyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/disconnect()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP10disconnectyyF\">disconnect()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnects the manager and all associated sockets.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">disconnect</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP010disconnectA0yyAA0A8IOClientCF\"></a>\n                    <a name=\"//apple_ref/swift/Method/disconnectSocket(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP010disconnectA0yyAA0A8IOClientCF\">disconnectSocket(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnects the given socket.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">disconnectSocket</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">socket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socket</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The socket to disconnect.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP010disconnectA012forNamespaceySS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/disconnectSocket(forNamespace:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP010disconnectA012forNamespaceySS_tF\">disconnectSocket(forNamespace:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnects the socket associated with <code>forNamespace</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">disconnectSocket</span><span class=\"p\">(</span><span class=\"n\">forNamespace</span> <span class=\"nv\">nsp</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>nsp</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The namespace to disconnect from.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP7emitAllyySS_AA0A4Data_pdtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/emitAll(_:_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP7emitAllyySS_AA0A4Data_pdtF\">emitAll(_:<wbr>_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Sends an event to the server on all namespaces in this manager.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">emitAll</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"n\">_</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Protocols/SocketData.html\">SocketData</a></span><span class=\"o\">...</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>event</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The event to send.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>items</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data to send with this event.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP9reconnectyyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/reconnect()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP9reconnectyyF\">reconnect()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Tries to reconnect to the server.</p>\n\n<p>This will cause a <code>disconnect</code> event to be emitted, as well as an <code>reconnectAttempt</code> event.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">reconnect</span><span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP06removeA0yAA0A8IOClientCSgAFF\"></a>\n                    <a name=\"//apple_ref/swift/Method/removeSocket(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP06removeA0yAA0A8IOClientCSgAFF\">removeSocket(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Removes the socket from the manager&rsquo;s control.\nAfter calling this method the socket should no longer be considered usable.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@discardableResult</span>\n<span class=\"kd\">func</span> <span class=\"nf\">removeSocket</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">socket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>socket</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The socket to remove.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>The socket removed, if it was owned by the manager.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP6socket12forNamespaceAA0A8IOClientCSS_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/socket(forNamespace:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP6socket12forNamespaceAA0A8IOClientCSS_tF\">socket(forNamespace:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Returns a <code><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></code> for the given namespace. This socket shares a transport with the manager.</p>\n\n<p>Calling multiple times returns the same socket.</p>\n\n<p>Sockets created from this method are retained by the manager.\nCall one of the <code>disconnectSocket</code> methods on the implementing class to remove the socket from manager control.\nOr call <code><a href=\"../Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC10disconnectyyF\">SocketIOClient.disconnect()</a></code> on the client.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">socket</span><span class=\"p\">(</span><span class=\"n\">forNamespace</span> <span class=\"nv\">nsp</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>nsp</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The namespace for the socket.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A <code><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></code> for the given namespace.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols/SocketParsable.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketParsable Protocol Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Protocol/SocketParsable\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketParsable Protocol Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketParsable Protocol Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketParsable</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketParsable</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span></code></pre>\n\n                </div>\n              </div>\n            <p>Defines that a type will be able to parse socket.io-protocol messages.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8ParsableP15parseBinaryDatayAA0A6PacketVSg10Foundation0F0VF\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseBinaryData(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8ParsableP15parseBinaryDatayAA0A6PacketVSg10Foundation0F0VF\">parseBinaryData(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine has received some binary data that should be attached to a packet.</p>\n\n<p>Packets binary data should be sent directly after the packet that expects it, so there&rsquo;s confusion over\nwhere the data should go. Data should be received in the order it is sent, so that the correct data is put\ninto the correct placeholder.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">parseBinaryData</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"kt\">Data</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Structs/SocketPacket.html\">SocketPacket</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data that should be attached to a packet.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8ParsableP05parseA7MessageyAA0A6PacketVSgSSF\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseSocketMessage(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8ParsableP05parseA7MessageyAA0A6PacketVSgSSF\">parseSocketMessage(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Called when the engine has received a string that should be parsed into a socket.io packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">parseSocketMessage</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">message</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Structs/SocketPacket.html\">SocketPacket</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>message</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The string that needs parsing.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A completed socket packet if there is no more data left to collect.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Available%20where%20%60Self%60%3A%20%60SocketManagerSpec%60%20%26%20%60SocketDataBufferable%60\"></a>\n                <a name=\"//apple_ref/swift/Section/Available where `Self`: `SocketManagerSpec` &amp; `SocketDataBufferable`\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Available%20where%20%60Self%60%3A%20%60SocketManagerSpec%60%20%26%20%60SocketDataBufferable%60\"></a>\n                  <h3 class=\"section-name\"><p>Available where <code>Self</code>: <code><a href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a></code> &amp; <code><a href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a></code></p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8ParsablePA2A0A14DataBufferableRzAA0A11ManagerSpecRzrlE05parseA7MessageyAA0A6PacketVSgSSF\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseSocketMessage(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8ParsablePA2A0A14DataBufferableRzAA0A11ManagerSpecRzrlE05parseA7MessageyAA0A6PacketVSgSSF\">parseSocketMessage(_:<wbr>)</a>\n                    </code>\n                      <span class=\"declaration-note\">\n                        Default implementation\n                      </span>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <h4>Default Implementation</h4>\n                      <div class=\"default_impl abstract\">\n                        <p>Called when the engine has received a string that should be parsed into a socket.io packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">parseSocketMessage</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">message</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Structs/SocketPacket.html\">SocketPacket</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>message</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The string that needs parsing.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A completed socket packet or nil if the packet is invalid.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8ParsablePA2A0A14DataBufferableRzAA0A11ManagerSpecRzrlE011parseBinaryD0yAA0A6PacketVSg10Foundation0D0VF\"></a>\n                    <a name=\"//apple_ref/swift/Method/parseBinaryData(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8ParsablePA2A0A14DataBufferableRzAA0A11ManagerSpecRzrlE011parseBinaryD0yAA0A6PacketVSg10Foundation0D0VF\">parseBinaryData(_:<wbr>)</a>\n                    </code>\n                      <span class=\"declaration-note\">\n                        Default implementation\n                      </span>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <h4>Default Implementation</h4>\n                      <div class=\"default_impl abstract\">\n                        <p>Called when the engine has received some binary data that should be attached to a packet.</p>\n\n<p>Packets binary data should be sent directly after the packet that expects it, so there&rsquo;s confusion over\nwhere the data should go. Data should be received in the order it is sent, so that the correct data is put\ninto the correct placeholder.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">func</span> <span class=\"nf\">parseBinaryData</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"kt\">Data</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Structs/SocketPacket.html\">SocketPacket</a></span><span class=\"p\">?</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>data</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data that should be attached to a packet.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>A completed socket packet if there is no more data left to collect.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Protocols.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>Protocols  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Section/Protocols\" class=\"dashAnchor\"></a>\n\n    <a title=\"Protocols  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      Protocols  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>Protocols</h1>\n            <p>The following protocols are available globally.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO14ConfigSettableP\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/ConfigSettable\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO14ConfigSettableP\">ConfigSettable</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Declares that a type can set configs from a <code><a href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a></code>.</p>\n\n                        <a href=\"Protocols/ConfigSettable.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">ConfigSettable</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12IOClientSpecP\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/SocketIOClientSpec\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12IOClientSpecP\">SocketIOClientSpec</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Defines the interface for a SocketIOClient.</p>\n\n                        <a href=\"Protocols/SocketIOClientSpec.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketIOClientSpec</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/c:@M@SocketIO@objc(pl)SocketEngineClient\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/SocketEngineClient\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/c:@M@SocketIO@objc(pl)SocketEngineClient\">SocketEngineClient</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Declares that a type will be a delegate to an engine.</p>\n\n                        <a href=\"Protocols/SocketEngineClient.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">@objc</span>\n<span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketEngineClient</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14EnginePollableP\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/SocketEnginePollable\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14EnginePollableP\">SocketEnginePollable</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Protocol that is used to implement socket.io polling support</p>\n\n                        <a href=\"Protocols/SocketEnginePollable.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketEnginePollable</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A10EngineSpecP\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/SocketEngineSpec\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A10EngineSpecP\">SocketEngineSpec</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Specifies a SocketEngine.</p>\n\n                        <a href=\"Protocols/SocketEngineSpec.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketEngineSpec</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A15EngineWebsocketP\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/SocketEngineWebsocket\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A15EngineWebsocketP\">SocketEngineWebsocket</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Protocol that is used to implement socket.io WebSocket support</p>\n\n                        <a href=\"Protocols/SocketEngineWebsocket.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketEngineWebsocket</span> <span class=\"p\">:</span> <span class=\"kt\"><a href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A11ManagerSpecP\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/SocketManagerSpec\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A11ManagerSpecP\">SocketManagerSpec</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A manager for a socket.io connection.</p>\n\n<p>A <code>SocketManagerSpec</code> is responsible for multiplexing multiple namespaces through a single <code><a href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a></code>.</p>\n\n<p>Example with <code><a href=\"Classes/SocketManager.html\">SocketManager</a></code>:</p>\n<pre class=\"highlight swift\"><code><span class=\"k\">let</span> <span class=\"nv\">manager</span> <span class=\"o\">=</span> <span class=\"kt\">SocketManager</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">(</span><span class=\"nv\">string</span><span class=\"p\">:</span><span class=\"s\">\"http://localhost:8080/\"</span><span class=\"p\">)</span><span class=\"o\">!</span><span class=\"p\">)</span>\n<span class=\"k\">let</span> <span class=\"nv\">defaultNamespaceSocket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"n\">defaultSocket</span>\n<span class=\"k\">let</span> <span class=\"nv\">swiftSocket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"nf\">socket</span><span class=\"p\">(</span><span class=\"nv\">forNamespace</span><span class=\"p\">:</span> <span class=\"s\">\"/swift\"</span><span class=\"p\">)</span>\n\n<span class=\"c1\">// defaultNamespaceSocket and swiftSocket both share a single connection to the server</span>\n</code></pre>\n\n<p>Sockets created through the manager are retained by the manager. So at the very least, a single strong reference\nto the manager must be maintained to keep sockets alive.</p>\n\n<p>To disconnect a socket and remove it from the manager, either call <code><a href=\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC10disconnectyyF\">SocketIOClient.disconnect()</a></code> on the socket,\nor call one of the <code>disconnectSocket</code> methods on this class.</p>\n\n                        <a href=\"Protocols/SocketManagerSpec.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketManagerSpec</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span><span class=\"p\">,</span> <span class=\"kt\"><a href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A8ParsableP\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/SocketParsable\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A8ParsableP\">SocketParsable</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Defines that a type will be able to parse socket.io-protocol messages.</p>\n\n                        <a href=\"Protocols/SocketParsable.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketParsable</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A14DataBufferableP\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/SocketDataBufferable\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A14DataBufferableP\">SocketDataBufferable</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Says that a type will be able to buffer binary data before all data for an event has come in.</p>\n\n                        <a href=\"Protocols/SocketDataBufferable.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketDataBufferable</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6LoggerP\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/SocketLogger\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6LoggerP\">SocketLogger</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Represents a class will log client events.</p>\n\n                        <a href=\"Protocols/SocketLogger.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketLogger</span> <span class=\"p\">:</span> <span class=\"kt\">AnyObject</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A4DataP\"></a>\n                    <a name=\"//apple_ref/swift/Protocol/SocketData\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A4DataP\">SocketData</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A marking protocol that says a type can be represented in a socket.io packet.</p>\n\n<p>Example:</p>\n<pre class=\"highlight swift\"><code><span class=\"kd\">struct</span> <span class=\"kt\">CustomData</span> <span class=\"p\">:</span> <span class=\"kt\">SocketData</span> <span class=\"p\">{</span>\n   <span class=\"k\">let</span> <span class=\"nv\">name</span><span class=\"p\">:</span> <span class=\"kt\">String</span>\n   <span class=\"k\">let</span> <span class=\"nv\">age</span><span class=\"p\">:</span> <span class=\"kt\">Int</span>\n\n   <span class=\"kd\">func</span> <span class=\"nf\">socketRepresentation</span><span class=\"p\">()</span> <span class=\"o\">-&gt;</span> <span class=\"kt\">SocketData</span> <span class=\"p\">{</span>\n       <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"s\">\"name\"</span><span class=\"p\">:</span> <span class=\"n\">name</span><span class=\"p\">,</span> <span class=\"s\">\"age\"</span><span class=\"p\">:</span> <span class=\"n\">age</span><span class=\"p\">]</span>\n   <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n\n<span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">,</span> <span class=\"kt\">CustomData</span><span class=\"p\">(</span><span class=\"nv\">name</span><span class=\"p\">:</span> <span class=\"s\">\"Erik\"</span><span class=\"p\">,</span> <span class=\"nv\">age</span><span class=\"p\">:</span> <span class=\"mi\">24</span><span class=\"p\">))</span>\n</code></pre>\n\n                        <a href=\"Protocols/SocketData.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">protocol</span> <span class=\"kt\">SocketData</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Structs/SocketEventHandler.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketEventHandler Structure Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Struct/SocketEventHandler\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketEventHandler Structure Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketEventHandler Structure Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketEventHandler</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">struct</span> <span class=\"kt\">SocketEventHandler</span></code></pre>\n\n                </div>\n              </div>\n            <p>A wrapper around a handler.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12EventHandlerV5eventSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/event\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12EventHandlerV5eventSSvp\">event</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The event for this handler.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12EventHandlerV2id10Foundation4UUIDVvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/id\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12EventHandlerV2id10Foundation4UUIDVvp\">id</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A unique identifier for this handler.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">id</span><span class=\"p\">:</span> <span class=\"kt\">UUID</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12EventHandlerV8callbackyySayypG_AA0A10AckEmitterCtcvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/callback\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12EventHandlerV8callbackyySayypG_AA0A10AckEmitterCtcvp\">callback</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The actual handler function.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">callback</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12EventHandlerV15executeCallback4with0G3Ack0gA0ySayypG_SiAA0A8IOClientCtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/executeCallback(with:withAck:withSocket:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12EventHandlerV15executeCallback4with0G3Ack0gA0ySayypG_SiAA0A8IOClientCtF\">executeCallback(with:<wbr>withAck:<wbr>withSocket:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Causes this handler to be executed.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">executeCallback</span><span class=\"p\">(</span><span class=\"n\">with</span> <span class=\"nv\">items</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">],</span> <span class=\"n\">withAck</span> <span class=\"nv\">ack</span><span class=\"p\">:</span> <span class=\"kt\">Int</span><span class=\"p\">,</span> <span class=\"n\">withSocket</span> <span class=\"nv\">socket</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Classes/SocketIOClient.html\">SocketIOClient</a></span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>with</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The data that this handler should be called with.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withAck</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The ack number that this event expects. Pass -1 to say this event doesn&rsquo;t expect an ack.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>withSocket</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The socket that is calling this event.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Structs/SocketIOClientConfiguration.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketIOClientConfiguration Structure Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Struct/SocketIOClientConfiguration\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketIOClientConfiguration Structure Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketIOClientConfiguration Structure Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketIOClientConfiguration</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">struct</span> <span class=\"kt\">SocketIOClientConfiguration</span> <span class=\"p\">:</span> <span class=\"kt\">ExpressibleByArrayLiteral</span><span class=\"p\">,</span> <span class=\"kt\">Collection</span><span class=\"p\">,</span> <span class=\"kt\">MutableCollection</span></code></pre>\n\n                </div>\n              </div>\n            <p>An array-like type that holds <code><a href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a></code>s</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Typealiases\"></a>\n                <a name=\"//apple_ref/swift/Section/Typealiases\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Typealiases\"></a>\n                  <h3 class=\"section-name\"><p>Typealiases</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV7Elementa\"></a>\n                    <a name=\"//apple_ref/swift/Alias/Element\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV7Elementa\">Element</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Type of element stored.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">typealias</span> <span class=\"kt\">Element</span> <span class=\"o\">=</span> <span class=\"kt\"><a href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV5Indexa\"></a>\n                    <a name=\"//apple_ref/swift/Alias/Index\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV5Indexa\">Index</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Index type.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">typealias</span> <span class=\"kt\">Index</span> <span class=\"o\">=</span> <span class=\"kt\">Array</span><span class=\"o\">&lt;</span><span class=\"kt\"><a href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a></span><span class=\"o\">&gt;.</span><span class=\"kt\">Index</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV8Iteratora\"></a>\n                    <a name=\"//apple_ref/swift/Alias/Iterator\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV8Iteratora\">Iterator</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Iterator type.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">typealias</span> <span class=\"kt\">Iterator</span> <span class=\"o\">=</span> <span class=\"kt\">Array</span><span class=\"o\">&lt;</span><span class=\"kt\"><a href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a></span><span class=\"o\">&gt;.</span><span class=\"kt\">Iterator</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV11SubSequencea\"></a>\n                    <a name=\"//apple_ref/swift/Alias/SubSequence\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV11SubSequencea\">SubSequence</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>SubSequence type.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">typealias</span> <span class=\"kt\">SubSequence</span> <span class=\"o\">=</span> <span class=\"kt\">Array</span><span class=\"o\">&lt;</span><span class=\"kt\"><a href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a></span><span class=\"o\">&gt;.</span><span class=\"kt\">SubSequence</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV10startIndexSivp\"></a>\n                    <a name=\"//apple_ref/swift/Property/startIndex\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV10startIndexSivp\">startIndex</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The start index of this collection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">startIndex</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5Indexa\">Index</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV8endIndexSivp\"></a>\n                    <a name=\"//apple_ref/swift/Property/endIndex\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV8endIndexSivp\">endIndex</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The end index of this collection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">endIndex</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5Indexa\">Index</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV7isEmptySbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/isEmpty\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV7isEmptySbvp\">isEmpty</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Whether this collection is empty.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">isEmpty</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV5countSivp\"></a>\n                    <a name=\"//apple_ref/swift/Property/count\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV5countSivp\">count</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The number of elements stored in this collection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">count</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5Indexa\">Index</a></span><span class=\"o\">.</span><span class=\"kt\">Stride</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV5firstAA0aC6OptionOSgvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/first\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV5firstAA0aC6OptionOSgvp\">first</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The first element in this collection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">first</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV7Elementa\">Element</a></span><span class=\"p\">?</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:Sly7ElementQz5IndexQzcip\"></a>\n                    <a name=\"//apple_ref/swift/Method/subscript(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:Sly7ElementQz5IndexQzcip\">subscript(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"nf\">subscript</span><span class=\"p\">(</span><span class=\"nv\">position</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5Indexa\">Index</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV7Elementa\">Element</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:Sly11SubSequenceQzSny5IndexQzGcip\"></a>\n                    <a name=\"//apple_ref/swift/Method/subscript(_:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:Sly11SubSequenceQzSny5IndexQzGcip\">subscript(_:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"nf\">subscript</span><span class=\"p\">(</span><span class=\"nv\">bounds</span><span class=\"p\">:</span> <span class=\"kt\">Range</span><span class=\"o\">&lt;</span><span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5Indexa\">Index</a></span><span class=\"o\">&gt;</span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV11SubSequencea\">SubSequence</a></span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"k\">set</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Initializers\"></a>\n                <a name=\"//apple_ref/swift/Section/Initializers\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Initializers\"></a>\n                  <h3 class=\"section-name\"><p>Initializers</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV12arrayLiteralAcA0aC6OptionOd_tcfc\"></a>\n                    <a name=\"//apple_ref/swift/Method/init(arrayLiteral:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV12arrayLiteralAcA0aC6OptionOd_tcfc\">init(arrayLiteral:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Creates a new <code>SocketIOClientConfiguration</code> from an array literal.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"nf\">init</span><span class=\"p\">(</span><span class=\"n\">arrayLiteral</span> <span class=\"nv\">elements</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV7Elementa\">Element</a></span><span class=\"o\">...</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>arrayLiteral</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The elements.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Methods\"></a>\n                <a name=\"//apple_ref/swift/Section/Methods\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Methods\"></a>\n                  <h3 class=\"section-name\"><p>Methods</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV12makeIterators08IndexingF0VySayAA0aC6OptionOGGyF\"></a>\n                    <a name=\"//apple_ref/swift/Method/makeIterator()\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV12makeIterators08IndexingF0VySayAA0aC6OptionOGGyF\">makeIterator()</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Creates an iterator for this collection.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">makeIterator</span><span class=\"p\">()</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV8Iteratora\">Iterator</a></span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>An iterator over this collection.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV5index5afterS2i_tF\"></a>\n                    <a name=\"//apple_ref/swift/Method/index(after:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV5index5afterS2i_tF\">index(after:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        \n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">func</span> <span class=\"nf\">index</span><span class=\"p\">(</span><span class=\"n\">after</span> <span class=\"nv\">i</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5Indexa\">Index</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5Indexa\">Index</a></span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Return Value</h4>\n                        <p>The index after index.</p>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV6insert_9replacingyAA0aC6OptionO_SbtF\"></a>\n                    <a name=\"//apple_ref/swift/Method/insert(_:replacing:)\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV6insert_9replacingyAA0aC6OptionO_SbtF\">insert(_:<wbr>replacing:<wbr>)</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Special method that inserts <code>element</code> into the collection, replacing any other instances of <code>element</code>.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">mutating</span> <span class=\"kd\">func</span> <span class=\"nf\">insert</span><span class=\"p\">(</span><span class=\"n\">_</span> <span class=\"nv\">element</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV7Elementa\">Element</a></span><span class=\"p\">,</span> <span class=\"n\">replacing</span> <span class=\"nv\">replace</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"o\">=</span> <span class=\"kc\">true</span><span class=\"p\">)</span></code></pre>\n\n                        </div>\n                      </div>\n                      <div>\n                        <h4>Parameters</h4>\n                        <table class=\"graybox\">\n                          <tbody>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>element</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>The element to insert.</p>\n                                </div>\n                              </td>\n                            </tr>\n                            <tr>\n                              <td>\n                                <code>\n                                <em>replacing</em>\n                                </code>\n                              </td>\n                              <td>\n                                <div>\n                                  <p>Whether to replace any occurrences of element to the new item. Default is <code>true</code>.</p>\n                                </div>\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Structs/SocketPacket/PacketType.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>PacketType Enumeration Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../../js/jquery.min.js\" defer></script>\n    <script src=\"../../js/jazzy.js\" defer></script>\n    \n    <script src=\"../../js/lunr.min.js\" defer></script>\n    <script src=\"../../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Enum/PacketType\" class=\"dashAnchor\"></a>\n\n    <a title=\"PacketType Enumeration Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../../img/carat.png\" />\n      PacketType Enumeration Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>PacketType</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">enum</span> <span class=\"kt\">PacketType</span> <span class=\"p\">:</span> <span class=\"kt\">Int</span></code></pre>\n\n                </div>\n              </div>\n            <p>The type of packets.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Cases\"></a>\n                <a name=\"//apple_ref/swift/Section/Cases\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Cases\"></a>\n                  <h3 class=\"section-name\"><p>Cases</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV0C4TypeO7connectyA2EmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/connect\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV0C4TypeO7connectyA2EmF\">connect</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Connect: 0</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">connect</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV0C4TypeO10disconnectyA2EmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/disconnect\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV0C4TypeO10disconnectyA2EmF\">disconnect</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Disconnect: 1</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">disconnect</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV0C4TypeO5eventyA2EmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/event\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV0C4TypeO5eventyA2EmF\">event</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Event: 2</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">event</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV0C4TypeO3ackyA2EmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/ack\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV0C4TypeO3ackyA2EmF\">ack</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Ack: 3</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">ack</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV0C4TypeO5erroryA2EmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/error\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV0C4TypeO5erroryA2EmF\">error</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Error: 4</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">error</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV0C4TypeO11binaryEventyA2EmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/binaryEvent\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV0C4TypeO11binaryEventyA2EmF\">binaryEvent</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Binary Event: 5</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">binaryEvent</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV0C4TypeO9binaryAckyA2EmF\"></a>\n                    <a name=\"//apple_ref/swift/Element/binaryAck\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV0C4TypeO9binaryAckyA2EmF\">binaryAck</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Binary Ack: 6</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"k\">case</span> <span class=\"n\">binaryAck</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV0C4TypeO8isBinarySbvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/isBinary\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV0C4TypeO8isBinarySbvp\">isBinary</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Whether or not this type is binary</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">isBinary</span><span class=\"p\">:</span> <span class=\"kt\">Bool</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Structs/SocketPacket.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketPacket Structure Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"../js/jquery.min.js\" defer></script>\n    <script src=\"../js/jazzy.js\" defer></script>\n    \n    <script src=\"../js/lunr.min.js\" defer></script>\n    <script src=\"../js/typeahead.jquery.js\" defer></script>\n    <script src=\"../js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Struct/SocketPacket\" class=\"dashAnchor\"></a>\n\n    <a title=\"SocketPacket Structure Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"../index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"../search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"../index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"../img/carat.png\" />\n      SocketPacket Structure Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"../Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"../Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>SocketPacket</h1>\n              <div class=\"declaration\">\n                <div class=\"language\">\n                  \n                  <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">struct</span> <span class=\"kt\">SocketPacket</span> <span class=\"p\">:</span> <span class=\"kt\">CustomStringConvertible</span></code></pre>\n\n                </div>\n              </div>\n            <p>A struct that represents a socket.io packet.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/Properties\"></a>\n                <a name=\"//apple_ref/swift/Section/Properties\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/Properties\"></a>\n                  <h3 class=\"section-name\"><p>Properties</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV3nspSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/nsp\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV3nspSSvp\">nsp</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The namespace for this packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">nsp</span><span class=\"p\">:</span> <span class=\"kt\">String</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV2idSivp\"></a>\n                    <a name=\"//apple_ref/swift/Property/id\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV2idSivp\">id</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>If &gt; 0 then this packet is using acking.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">id</span><span class=\"p\">:</span> <span class=\"kt\">Int</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV4typeAC0C4TypeOvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/type\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV4typeAC0C4TypeOvp\">type</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The type of this packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">let</span> <span class=\"nv\">type</span><span class=\"p\">:</span> <span class=\"kt\"><a href=\"../Structs/SocketPacket/PacketType.html\">PacketType</a></span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV6binarySay10Foundation4DataVGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/binary\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV6binarySay10Foundation4DataVGvp\">binary</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>An array of binary data for this packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">internal(set)</span> <span class=\"k\">var</span> <span class=\"nv\">binary</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Data</span><span class=\"p\">]</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV4dataSayypGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/data\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV4dataSayypGvp\">data</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The data for this event.</p>\n\n<p>Note: This includes all data inside of the socket.io packet payload array, which includes the event name for\nevent type packets.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">internal(set)</span> <span class=\"k\">var</span> <span class=\"nv\">data</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">]</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV4argsSayypGvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/args\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV4argsSayypGvp\">args</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>Returns the payload for this packet, minus the event name if this is an event or binaryEvent type packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">args</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"kt\">Any</span><span class=\"p\">]</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV11descriptionSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/description\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV11descriptionSSvp\">description</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A string representation of this packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">description</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV5eventSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/event\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV5eventSSvp\">event</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The event name for this packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">event</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV12packetStringSSvp\"></a>\n                    <a name=\"//apple_ref/swift/Property/packetString\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV12packetStringSSvp\">packetString</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A string representation of this packet.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"k\">var</span> <span class=\"nv\">packetString</span><span class=\"p\">:</span> <span class=\"kt\">String</span> <span class=\"p\">{</span> <span class=\"k\">get</span> <span class=\"p\">}</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n            <div class=\"task-group\">\n              <div class=\"task-name-container\">\n                <a name=\"/PacketType%20enum\"></a>\n                <a name=\"//apple_ref/swift/Section/PacketType enum\" class=\"dashAnchor\"></a>\n                <div class=\"section-name-container\">\n                  <a class=\"section-name-link\" href=\"#/PacketType%20enum\"></a>\n                  <h3 class=\"section-name\"><p>PacketType enum</p>\n</h3>\n                </div>\n              </div>\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV0C4TypeO\"></a>\n                    <a name=\"//apple_ref/swift/Enum/PacketType\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV0C4TypeO\">PacketType</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>The type of packets.</p>\n\n                        <a href=\"../Structs/SocketPacket/PacketType.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">enum</span> <span class=\"kt\">PacketType</span> <span class=\"p\">:</span> <span class=\"kt\">Int</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Structs.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>Structures  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Section/Structures\" class=\"dashAnchor\"></a>\n\n    <a title=\"Structures  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      Structures  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>Structures</h1>\n            <p>The following structures are available globally.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A12EventHandlerV\"></a>\n                    <a name=\"//apple_ref/swift/Struct/SocketEventHandler\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A12EventHandlerV\">SocketEventHandler</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A wrapper around a handler.</p>\n\n                        <a href=\"Structs/SocketEventHandler.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">struct</span> <span class=\"kt\">SocketEventHandler</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A21IOClientConfigurationV\"></a>\n                    <a name=\"//apple_ref/swift/Struct/SocketIOClientConfiguration\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A21IOClientConfigurationV\">SocketIOClientConfiguration</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>An array-like type that holds <code><a href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a></code>s</p>\n\n                        <a href=\"Structs/SocketIOClientConfiguration.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">struct</span> <span class=\"kt\">SocketIOClientConfiguration</span> <span class=\"p\">:</span> <span class=\"kt\">ExpressibleByArrayLiteral</span><span class=\"p\">,</span> <span class=\"kt\">Collection</span><span class=\"p\">,</span> <span class=\"kt\">MutableCollection</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO0A6PacketV\"></a>\n                    <a name=\"//apple_ref/swift/Struct/SocketPacket\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO0A6PacketV\">SocketPacket</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A struct that represents a socket.io packet.</p>\n\n                        <a href=\"Structs/SocketPacket.html\" class=\"slightly-smaller\">See more</a>\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">struct</span> <span class=\"kt\">SocketPacket</span> <span class=\"p\">:</span> <span class=\"kt\">CustomStringConvertible</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/Typealiases.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>Type Aliases  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n    <a name=\"//apple_ref/swift/Section/Type Aliases\" class=\"dashAnchor\"></a>\n\n    <a title=\"Type Aliases  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      Type Aliases  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            <h1>Type Aliases</h1>\n            <p>The following type aliases are available globally.</p>\n\n          </div>\n        </section>\n\n        <section class=\"section\">\n          <div class=\"section-content\">\n            <div class=\"task-group\">\n              <ul class=\"item-container\">\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO11AckCallbacka\"></a>\n                    <a name=\"//apple_ref/swift/Alias/AckCallback\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A typealias for an ack callback.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">typealias</span> <span class=\"kt\">AckCallback</span> <span class=\"o\">=</span> <span class=\"p\">([</span><span class=\"kt\">Any</span><span class=\"p\">])</span> <span class=\"o\">-&gt;</span> <span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO14NormalCallbacka\"></a>\n                    <a name=\"//apple_ref/swift/Alias/NormalCallback\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A typealias for a normal callback.</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">typealias</span> <span class=\"kt\">NormalCallback</span> <span class=\"o\">=</span> <span class=\"p\">([</span><span class=\"kt\">Any</span><span class=\"p\">],</span> <span class=\"kt\"><a href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a></span><span class=\"p\">)</span> <span class=\"o\">-&gt;</span> <span class=\"p\">()</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n                <li class=\"item\">\n                  <div>\n                    <code>\n                    <a name=\"/s:8SocketIO4Posta\"></a>\n                    <a name=\"//apple_ref/swift/Alias/Post\" class=\"dashAnchor\"></a>\n                    <a class=\"token\" href=\"#/s:8SocketIO4Posta\">Post</a>\n                    </code>\n                  </div>\n                  <div class=\"height-container\">\n                    <div class=\"pointer-container\"></div>\n                    <section class=\"section\">\n                      <div class=\"pointer\"></div>\n                      <div class=\"abstract\">\n                        <p>A typealias for a queued POST</p>\n\n                      </div>\n                      <div class=\"declaration\">\n                        <h4>Declaration</h4>\n                        <div class=\"language\">\n                          <p class=\"aside-title\">Swift</p>\n                          <pre class=\"highlight swift\"><code><span class=\"kd\">public</span> <span class=\"kd\">typealias</span> <span class=\"kt\">Post</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"nv\">msg</span><span class=\"p\">:</span> <span class=\"kt\">String</span><span class=\"p\">,</span> <span class=\"nv\">completion</span><span class=\"p\">:</span> <span class=\"p\">(()</span> <span class=\"o\">-&gt;</span> <span class=\"p\">())?)</span></code></pre>\n\n                        </div>\n                      </div>\n                    </section>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </section>\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/css/highlight.css",
    "content": "/* Credit to https://gist.github.com/wataru420/2048287 */\n.highlight {\n  /* Comment */\n  /* Error */\n  /* Keyword */\n  /* Operator */\n  /* Comment.Multiline */\n  /* Comment.Preproc */\n  /* Comment.Single */\n  /* Comment.Special */\n  /* Generic.Deleted */\n  /* Generic.Deleted.Specific */\n  /* Generic.Emph */\n  /* Generic.Error */\n  /* Generic.Heading */\n  /* Generic.Inserted */\n  /* Generic.Inserted.Specific */\n  /* Generic.Output */\n  /* Generic.Prompt */\n  /* Generic.Strong */\n  /* Generic.Subheading */\n  /* Generic.Traceback */\n  /* Keyword.Constant */\n  /* Keyword.Declaration */\n  /* Keyword.Pseudo */\n  /* Keyword.Reserved */\n  /* Keyword.Type */\n  /* Literal.Number */\n  /* Literal.String */\n  /* Name.Attribute */\n  /* Name.Builtin */\n  /* Name.Class */\n  /* Name.Constant */\n  /* Name.Entity */\n  /* Name.Exception */\n  /* Name.Function */\n  /* Name.Namespace */\n  /* Name.Tag */\n  /* Name.Variable */\n  /* Operator.Word */\n  /* Text.Whitespace */\n  /* Literal.Number.Float */\n  /* Literal.Number.Hex */\n  /* Literal.Number.Integer */\n  /* Literal.Number.Oct */\n  /* Literal.String.Backtick */\n  /* Literal.String.Char */\n  /* Literal.String.Doc */\n  /* Literal.String.Double */\n  /* Literal.String.Escape */\n  /* Literal.String.Heredoc */\n  /* Literal.String.Interpol */\n  /* Literal.String.Other */\n  /* Literal.String.Regex */\n  /* Literal.String.Single */\n  /* Literal.String.Symbol */\n  /* Name.Builtin.Pseudo */\n  /* Name.Variable.Class */\n  /* Name.Variable.Global */\n  /* Name.Variable.Instance */\n  /* Literal.Number.Integer.Long */ }\n  .highlight .c {\n    color: #999988;\n    font-style: italic; }\n  .highlight .err {\n    color: #a61717;\n    background-color: #e3d2d2; }\n  .highlight .k {\n    color: #000000;\n    font-weight: bold; }\n  .highlight .o {\n    color: #000000;\n    font-weight: bold; }\n  .highlight .cm {\n    color: #999988;\n    font-style: italic; }\n  .highlight .cp {\n    color: #999999;\n    font-weight: bold; }\n  .highlight .c1 {\n    color: #999988;\n    font-style: italic; }\n  .highlight .cs {\n    color: #999999;\n    font-weight: bold;\n    font-style: italic; }\n  .highlight .gd {\n    color: #000000;\n    background-color: #ffdddd; }\n  .highlight .gd .x {\n    color: #000000;\n    background-color: #ffaaaa; }\n  .highlight .ge {\n    color: #000000;\n    font-style: italic; }\n  .highlight .gr {\n    color: #aa0000; }\n  .highlight .gh {\n    color: #999999; }\n  .highlight .gi {\n    color: #000000;\n    background-color: #ddffdd; }\n  .highlight .gi .x {\n    color: #000000;\n    background-color: #aaffaa; }\n  .highlight .go {\n    color: #888888; }\n  .highlight .gp {\n    color: #555555; }\n  .highlight .gs {\n    font-weight: bold; }\n  .highlight .gu {\n    color: #aaaaaa; }\n  .highlight .gt {\n    color: #aa0000; }\n  .highlight .kc {\n    color: #000000;\n    font-weight: bold; }\n  .highlight .kd {\n    color: #000000;\n    font-weight: bold; }\n  .highlight .kp {\n    color: #000000;\n    font-weight: bold; }\n  .highlight .kr {\n    color: #000000;\n    font-weight: bold; }\n  .highlight .kt {\n    color: #445588; }\n  .highlight .m {\n    color: #009999; }\n  .highlight .s {\n    color: #d14; }\n  .highlight .na {\n    color: #008080; }\n  .highlight .nb {\n    color: #0086B3; }\n  .highlight .nc {\n    color: #445588;\n    font-weight: bold; }\n  .highlight .no {\n    color: #008080; }\n  .highlight .ni {\n    color: #800080; }\n  .highlight .ne {\n    color: #990000;\n    font-weight: bold; }\n  .highlight .nf {\n    color: #990000; }\n  .highlight .nn {\n    color: #555555; }\n  .highlight .nt {\n    color: #000080; }\n  .highlight .nv {\n    color: #008080; }\n  .highlight .ow {\n    color: #000000;\n    font-weight: bold; }\n  .highlight .w {\n    color: #bbbbbb; }\n  .highlight .mf {\n    color: #009999; }\n  .highlight .mh {\n    color: #009999; }\n  .highlight .mi {\n    color: #009999; }\n  .highlight .mo {\n    color: #009999; }\n  .highlight .sb {\n    color: #d14; }\n  .highlight .sc {\n    color: #d14; }\n  .highlight .sd {\n    color: #d14; }\n  .highlight .s2 {\n    color: #d14; }\n  .highlight .se {\n    color: #d14; }\n  .highlight .sh {\n    color: #d14; }\n  .highlight .si {\n    color: #d14; }\n  .highlight .sx {\n    color: #d14; }\n  .highlight .sr {\n    color: #009926; }\n  .highlight .s1 {\n    color: #d14; }\n  .highlight .ss {\n    color: #990073; }\n  .highlight .bp {\n    color: #999999; }\n  .highlight .vc {\n    color: #008080; }\n  .highlight .vg {\n    color: #008080; }\n  .highlight .vi {\n    color: #008080; }\n  .highlight .il {\n    color: #009999; }\n"
  },
  {
    "path": "docs/css/jazzy.css",
    "content": "*, *:before, *:after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  background: #fff;\n  color: #333;\n  font: 16px/1.7 \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  letter-spacing: .2px;\n  -webkit-font-smoothing: antialiased;\n  box-sizing: border-box; }\n\nh1 {\n  font-size: 2rem;\n  font-weight: 700;\n  margin: 1.275em 0 0.6em; }\n\nh2 {\n  font-size: 1.75rem;\n  font-weight: 700;\n  margin: 1.275em 0 0.3em; }\n\nh3 {\n  font-size: 1.5rem;\n  font-weight: 700;\n  margin: 1em 0 0.3em; }\n\nh4 {\n  font-size: 1.25rem;\n  font-weight: 700;\n  margin: 1.275em 0 0.85em; }\n\nh5 {\n  font-size: 1rem;\n  font-weight: 700;\n  margin: 1.275em 0 0.85em; }\n\nh6 {\n  font-size: 1rem;\n  font-weight: 700;\n  margin: 1.275em 0 0.85em;\n  color: #777; }\n\np {\n  margin: 0 0 1em; }\n\nul, ol {\n  padding: 0 0 0 2em;\n  margin: 0 0 0.85em; }\n\nblockquote {\n  margin: 0 0 0.85em;\n  padding: 0 15px;\n  color: #858585;\n  border-left: 4px solid #e5e5e5; }\n\nimg {\n  max-width: 100%; }\n\na {\n  color: #4183c4;\n  text-decoration: none; }\n  a:hover, a:focus {\n    outline: 0;\n    text-decoration: underline; }\n  a.discouraged {\n    text-decoration: line-through; }\n    a.discouraged:hover, a.discouraged:focus {\n      text-decoration: underline line-through; }\n\ntable {\n  background: #fff;\n  width: 100%;\n  border-collapse: collapse;\n  border-spacing: 0;\n  overflow: auto;\n  margin: 0 0 0.85em; }\n\ntr:nth-child(2n) {\n  background-color: #fbfbfb; }\n\nth, td {\n  padding: 6px 13px;\n  border: 1px solid #ddd; }\n\npre {\n  margin: 0 0 1.275em;\n  padding: .85em 1em;\n  overflow: auto;\n  background: #f7f7f7;\n  font-size: .85em;\n  font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace; }\n\ncode {\n  font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace; }\n\n.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code {\n  background: #f7f7f7;\n  padding: .2em; }\n  .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after {\n    letter-spacing: -.2em;\n    content: \"\\00a0\"; }\n\npre code {\n  padding: 0;\n  white-space: pre; }\n\n.content-wrapper {\n  display: flex;\n  flex-direction: column; }\n  @media (min-width: 768px) {\n    .content-wrapper {\n      flex-direction: row; } }\n.header {\n  display: flex;\n  padding: 8px;\n  font-size: 0.875em;\n  background: #444;\n  color: #999; }\n\n.header-col {\n  margin: 0;\n  padding: 0 8px; }\n\n.header-col--primary {\n  flex: 1; }\n\n.header-link {\n  color: #fff; }\n\n.header-icon {\n  padding-right: 6px;\n  vertical-align: -4px;\n  height: 16px; }\n\n.breadcrumbs {\n  font-size: 0.875em;\n  padding: 8px 16px;\n  margin: 0;\n  background: #fbfbfb;\n  border-bottom: 1px solid #ddd; }\n\n.carat {\n  height: 10px;\n  margin: 0 5px; }\n\n.navigation {\n  order: 2; }\n  @media (min-width: 768px) {\n    .navigation {\n      order: 1;\n      width: 25%;\n      max-width: 300px;\n      padding-bottom: 64px;\n      overflow: hidden;\n      word-wrap: normal;\n      background: #fbfbfb;\n      border-right: 1px solid #ddd; } }\n.nav-groups {\n  list-style-type: none;\n  padding-left: 0; }\n\n.nav-group-name {\n  border-bottom: 1px solid #ddd;\n  padding: 8px 0 8px 16px; }\n\n.nav-group-name-link {\n  color: #333; }\n\n.nav-group-tasks {\n  margin: 8px 0;\n  padding: 0 0 0 8px; }\n\n.nav-group-task {\n  font-size: 1em;\n  list-style-type: none;\n  white-space: nowrap; }\n\n.nav-group-task-link {\n  color: #808080; }\n\n.main-content {\n  order: 1; }\n  @media (min-width: 768px) {\n    .main-content {\n      order: 2;\n      flex: 1;\n      padding-bottom: 60px; } }\n.section {\n  padding: 0 32px;\n  border-bottom: 1px solid #ddd; }\n\n.section-content {\n  max-width: 834px;\n  margin: 0 auto;\n  padding: 16px 0; }\n\n.section-name {\n  color: #666;\n  display: block; }\n  .section-name p {\n    margin-bottom: inherit; }\n\n.declaration .highlight {\n  overflow-x: initial;\n  padding: 8px 0;\n  margin: 0;\n  background-color: transparent;\n  border: none; }\n\n.task-group-section {\n  border-top: 1px solid #ddd; }\n\n.task-group {\n  padding-top: 0px; }\n\n.task-name-container a[name]:before {\n  content: \"\";\n  display: block; }\n\n.section-name-container {\n  position: relative; }\n  .section-name-container .section-name-link {\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    margin-bottom: 0; }\n  .section-name-container .section-name {\n    position: relative;\n    pointer-events: none;\n    z-index: 1; }\n    .section-name-container .section-name a {\n      pointer-events: auto; }\n\n.item-container {\n  padding: 0; }\n\n.item {\n  padding-top: 8px;\n  width: 100%;\n  list-style-type: none; }\n  .item a[name]:before {\n    content: \"\";\n    display: block; }\n  .item .token, .item .direct-link {\n    display: inline-block;\n    text-indent: -20px;\n    padding-left: 3px;\n    margin-left: 20px;\n    font-size: 1rem; }\n  .item .declaration-note {\n    font-size: .85em;\n    color: #808080;\n    font-style: italic; }\n\n.pointer-container {\n  border-bottom: 1px solid #ddd;\n  left: -23px;\n  padding-bottom: 13px;\n  position: relative;\n  width: 110%; }\n\n.pointer {\n  left: 21px;\n  top: 7px;\n  display: block;\n  position: absolute;\n  width: 12px;\n  height: 12px;\n  border-left: 1px solid #ddd;\n  border-top: 1px solid #ddd;\n  background: #fff;\n  transform: rotate(45deg); }\n\n.height-container {\n  display: none;\n  position: relative;\n  width: 100%;\n  overflow: hidden; }\n  .height-container .section {\n    background: #fff;\n    border: 1px solid #ddd;\n    border-top-width: 0;\n    padding-top: 10px;\n    padding-bottom: 5px;\n    padding: 8px 16px; }\n\n.aside, .language {\n  padding: 6px 12px;\n  margin: 12px 0;\n  border-left: 5px solid #dddddd;\n  overflow-y: hidden; }\n  .aside .aside-title, .language .aside-title {\n    font-size: 9px;\n    letter-spacing: 2px;\n    text-transform: uppercase;\n    padding-bottom: 0;\n    margin: 0;\n    color: #aaa;\n    -webkit-user-select: none; }\n  .aside p:last-child, .language p:last-child {\n    margin-bottom: 0; }\n\n.language {\n  border-left: 5px solid #cde9f4; }\n  .language .aside-title {\n    color: #4183c4; }\n\n.aside-warning, .aside-deprecated, .aside-unavailable {\n  border-left: 5px solid #ff6666; }\n  .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title {\n    color: #ff0000; }\n\n.graybox {\n  border-collapse: collapse;\n  width: 100%; }\n  .graybox p {\n    margin: 0;\n    word-break: break-word;\n    min-width: 50px; }\n  .graybox td {\n    border: 1px solid #ddd;\n    padding: 5px 25px 5px 10px;\n    vertical-align: middle; }\n  .graybox tr td:first-of-type {\n    text-align: right;\n    padding: 7px;\n    vertical-align: top;\n    word-break: normal;\n    width: 40px; }\n\n.slightly-smaller {\n  font-size: 0.9em; }\n\n.footer {\n  padding: 8px 16px;\n  background: #444;\n  color: #ddd;\n  font-size: 0.8em; }\n  .footer p {\n    margin: 8px 0; }\n  .footer a {\n    color: #fff; }\n\nhtml.dash .header, html.dash .breadcrumbs, html.dash .navigation {\n  display: none; }\n\nhtml.dash .height-container {\n  display: block; }\n\nform[role=search] input {\n  font: 16px/1.7 \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 24px;\n  padding: 0 10px;\n  margin: 0;\n  border: none;\n  border-radius: 1em; }\n  .loading form[role=search] input {\n    background: white url(../img/spinner.gif) center right 4px no-repeat; }\n\nform[role=search] .tt-menu {\n  margin: 0;\n  min-width: 300px;\n  background: #fbfbfb;\n  color: #333;\n  border: 1px solid #ddd; }\n\nform[role=search] .tt-highlight {\n  font-weight: bold; }\n\nform[role=search] .tt-suggestion {\n  font: 16px/1.7 \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  padding: 0 8px; }\n  form[role=search] .tt-suggestion span {\n    display: table-cell;\n    white-space: nowrap; }\n  form[role=search] .tt-suggestion .doc-parent-name {\n    width: 100%;\n    text-align: right;\n    font-weight: normal;\n    font-size: 0.9em;\n    padding-left: 16px; }\n\nform[role=search] .tt-suggestion:hover,\nform[role=search] .tt-suggestion.tt-cursor {\n  cursor: pointer;\n  background-color: #4183c4;\n  color: #fff; }\n\nform[role=search] .tt-suggestion:hover .doc-parent-name,\nform[role=search] .tt-suggestion.tt-cursor .doc-parent-name {\n  color: #fff; }\n"
  },
  {
    "path": "docs/faq.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>FAQ  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n\n    <a title=\"FAQ  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      FAQ  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            \n            <h2 id='how-do-i-connect-to-my-websocket-server' class='heading'>How do I connect to my WebSocket server?</h2>\n\n<p>This library is <strong>NOT</strong> a WebSockets library. This library is only for servers that implement the socket.io protocol, \nsuch as <a href=\"https://socket.io/\">socket.io</a>. If you need a plain WebSockets client check out \n<a href=\"https://github.com/daltoniam/Starscream\">Starscream</a> for Swift and <a href=\"https://github.com/acmacalister/jetfire\">JetFire</a>\nfor Objective-C.</p>\n<h2 id='why-isn-39-t-my-event-handler-being-called' class='heading'>Why isn&rsquo;t my event handler being called?</h2>\n\n<p>One of the most common reasons your event might not be called is if the client is released by \n<a href=\"https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html\">ARC</a>.</p>\n\n<p>Take this code for example:</p>\n<pre class=\"highlight swift\"><code><span class=\"kd\">class</span> <span class=\"kt\">Manager</span> <span class=\"p\">{</span>\n    <span class=\"kd\">func</span> <span class=\"nf\">addHandlers</span><span class=\"p\">()</span> <span class=\"p\">{</span>\n        <span class=\"k\">let</span> <span class=\"nv\">manager</span> <span class=\"o\">=</span> <span class=\"kt\">SocketManager</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">(</span><span class=\"nv\">string</span><span class=\"p\">:</span> <span class=\"s\">\"http://somesocketioserver.com\"</span><span class=\"p\">)</span><span class=\"o\">!</span><span class=\"p\">)</span>\n\n        <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"n\">defaultSocket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n            <span class=\"nf\">print</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n        <span class=\"p\">}</span>\n    <span class=\"p\">}</span>\n\n<span class=\"p\">}</span>\n</code></pre>\n\n<p>This code is <strong>incorrect</strong>, and the event handler will never be called. Because as soon as this method is called <code>manager</code>\nwill be released, along with the socket, and its memory reclaimed.</p>\n\n<p>A correct way would be:</p>\n<pre class=\"highlight swift\"><code><span class=\"kd\">class</span> <span class=\"kt\">Manager</span> <span class=\"p\">{</span>\n    <span class=\"k\">let</span> <span class=\"nv\">manager</span> <span class=\"o\">=</span> <span class=\"kt\">SocketManager</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">(</span><span class=\"nv\">string</span><span class=\"p\">:</span> <span class=\"s\">\"http://somesocketioserver.com\"</span><span class=\"p\">)</span><span class=\"o\">!</span><span class=\"p\">)</span>\n\n    <span class=\"kd\">func</span> <span class=\"nf\">addHandlers</span><span class=\"p\">()</span> <span class=\"p\">{</span>\n        <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"n\">defaultSocket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"s\">\"myEvent\"</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n            <span class=\"nf\">print</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n        <span class=\"p\">}</span>\n    <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n\n</code></pre>\n\n          </div>\n        </section>\n\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>SocketIO  Reference</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jazzy.css\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"css/highlight.css\" />\n    <meta charset=\"utf-8\">\n    <script src=\"js/jquery.min.js\" defer></script>\n    <script src=\"js/jazzy.js\" defer></script>\n    \n    <script src=\"js/lunr.min.js\" defer></script>\n    <script src=\"js/typeahead.jquery.js\" defer></script>\n    <script src=\"js/jazzy.search.js\" defer></script>\n  </head>\n  <body>\n\n\n    <a title=\"SocketIO  Reference\"></a>\n\n    <header class=\"header\">\n      <p class=\"header-col header-col--primary\">\n        <a class=\"header-link\" href=\"index.html\">\n          SocketIO 16.0.0 Docs\n        </a>\n         (100% documented)\n      </p>\n    \n      <p class=\"header-col--secondary\">\n        <form role=\"search\" action=\"search.json\">\n          <input type=\"text\" placeholder=\"Search documentation\" data-typeahead>\n        </form>\n      </p>\n    \n    \n    </header>\n\n    <p class=\"breadcrumbs\">\n      <a class=\"breadcrumb\" href=\"index.html\">SocketIO Reference</a>\n      <img class=\"carat\" src=\"img/carat.png\" />\n      SocketIO  Reference\n    </p>\n\n    <div class=\"content-wrapper\">\n      <nav class=\"navigation\">\n        <ul class=\"nav-groups\">\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Guides.html\">Guides</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"12to13.html\">12to13</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"15to16.html\">15to16</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"faq.html\">FAQ</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Classes.html\">Classes</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/OnAckCallback.html\">OnAckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAckEmitter.html\">SocketAckEmitter</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketAnyEvent.html\">SocketAnyEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketEngine.html\">SocketEngine</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketIOClient.html\">SocketIOClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketManager.html\">SocketManager</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawAckView.html\">SocketRawAckView</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Classes/SocketRawView.html\">SocketRawView</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Enums.html\">Enumerations</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketAckStatus.html\">SocketAckStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketClientEvent.html\">SocketClientEvent</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketEnginePacketType.html\">SocketEnginePacketType</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOClientOption.html\">SocketIOClientOption</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOStatus.html\">SocketIOStatus</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketIOVersion.html\">SocketIOVersion</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Enums/SocketParsableError.html\">SocketParsableError</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Extensions.html\">Extensions</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sa\">Array</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sb\">Bool</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:10Foundation4DataV\">Data</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SD\">Dictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Sd\">Double</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:Si\">Int</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSArray\">NSArray</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSData\">NSData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSDictionary\">NSDictionary</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSNull\">NSNull</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/c:objc(cs)NSString\">NSString</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Extensions.html#/s:SS\">String</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Protocols.html\">Protocols</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/ConfigSettable.html\">ConfigSettable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketData.html\">SocketData</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketDataBufferable.html\">SocketDataBufferable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineClient.html\">SocketEngineClient</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEnginePollable.html\">SocketEnginePollable</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineSpec.html\">SocketEngineSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketEngineWebsocket.html\">SocketEngineWebsocket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketIOClientSpec.html\">SocketIOClientSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketLogger.html\">SocketLogger</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketManagerSpec.html\">SocketManagerSpec</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Protocols/SocketParsable.html\">SocketParsable</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Structs.html\">Structures</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketEventHandler.html\">SocketEventHandler</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketIOClientConfiguration.html\">SocketIOClientConfiguration</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket.html\">SocketPacket</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Structs/SocketPacket/PacketType.html\">– PacketType</a>\n              </li>\n            </ul>\n          </li>\n          <li class=\"nav-group-name\">\n            <a class=\"nav-group-name-link\" href=\"Typealiases.html\">Type Aliases</a>\n            <ul class=\"nav-group-tasks\">\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO11AckCallbacka\">AckCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO14NormalCallbacka\">NormalCallback</a>\n              </li>\n              <li class=\"nav-group-task\">\n                <a class=\"nav-group-task-link\" href=\"Typealiases.html#/s:8SocketIO4Posta\">Post</a>\n              </li>\n            </ul>\n          </li>\n        </ul>\n      </nav>\n      <article class=\"main-content\">\n\n        <section class=\"section\">\n          <div class=\"section-content top-matter\">\n            \n            <p><a href=\"https://travis-ci.org/socketio/socket.io-client-swift\"><img src=\"https://travis-ci.org/socketio/socket.io-client-swift.svg?branch=master\" alt=\"Build Status\"></a></p>\n<h1 id='socket-io-client-swift' class='heading'>Socket.IO-Client-Swift</h1>\n\n<p>Socket.IO-client for iOS/OS X.</p>\n<h2 id='example' class='heading'>Example</h2>\n<pre class=\"highlight swift\"><code><span class=\"kd\">import</span> <span class=\"kt\">SocketIO</span>\n\n<span class=\"k\">let</span> <span class=\"nv\">manager</span> <span class=\"o\">=</span> <span class=\"kt\">SocketManager</span><span class=\"p\">(</span><span class=\"nv\">socketURL</span><span class=\"p\">:</span> <span class=\"kt\">URL</span><span class=\"p\">(</span><span class=\"nv\">string</span><span class=\"p\">:</span> <span class=\"s\">\"http://localhost:8080\"</span><span class=\"p\">)</span><span class=\"o\">!</span><span class=\"p\">,</span> <span class=\"nv\">config</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"o\">.</span><span class=\"nf\">log</span><span class=\"p\">(</span><span class=\"kc\">true</span><span class=\"p\">),</span> <span class=\"o\">.</span><span class=\"n\">compress</span><span class=\"p\">])</span>\n<span class=\"k\">let</span> <span class=\"nv\">socket</span> <span class=\"o\">=</span> <span class=\"n\">manager</span><span class=\"o\">.</span><span class=\"n\">defaultSocket</span>\n\n<span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"nv\">clientEvent</span><span class=\"p\">:</span> <span class=\"o\">.</span><span class=\"n\">connect</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"nf\">print</span><span class=\"p\">(</span><span class=\"s\">\"socket connected\"</span><span class=\"p\">)</span>\n<span class=\"p\">}</span>\n\n<span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">on</span><span class=\"p\">(</span><span class=\"s\">\"currentAmount\"</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">ack</span> <span class=\"k\">in</span>\n    <span class=\"k\">guard</span> <span class=\"k\">let</span> <span class=\"nv\">cur</span> <span class=\"o\">=</span> <span class=\"n\">data</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span> <span class=\"k\">as?</span> <span class=\"kt\">Double</span> <span class=\"k\">else</span> <span class=\"p\">{</span> <span class=\"k\">return</span> <span class=\"p\">}</span>\n\n    <span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">emitWithAck</span><span class=\"p\">(</span><span class=\"s\">\"canUpdate\"</span><span class=\"p\">,</span> <span class=\"n\">cur</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"nf\">timingOut</span><span class=\"p\">(</span><span class=\"nv\">after</span><span class=\"p\">:</span> <span class=\"mi\">0</span><span class=\"p\">)</span> <span class=\"p\">{</span><span class=\"n\">data</span> <span class=\"k\">in</span>\n        <span class=\"k\">if</span> <span class=\"n\">data</span><span class=\"o\">.</span><span class=\"n\">first</span> <span class=\"k\">as?</span> <span class=\"kt\">String</span> <span class=\"p\">??</span> <span class=\"s\">\"passed\"</span> <span class=\"o\">==</span> <span class=\"kt\">SocketAckValue</span><span class=\"o\">.</span><span class=\"n\">noAck</span> <span class=\"p\">{</span>\n            <span class=\"c1\">// Handle ack timeout </span>\n        <span class=\"p\">}</span>\n\n        <span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">emit</span><span class=\"p\">(</span><span class=\"s\">\"update\"</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s\">\"amount\"</span><span class=\"p\">:</span> <span class=\"n\">cur</span> <span class=\"o\">+</span> <span class=\"mf\">2.50</span><span class=\"p\">])</span>\n    <span class=\"p\">}</span>\n\n    <span class=\"n\">ack</span><span class=\"o\">.</span><span class=\"nf\">with</span><span class=\"p\">(</span><span class=\"s\">\"Got your currentAmount\"</span><span class=\"p\">,</span> <span class=\"s\">\"dude\"</span><span class=\"p\">)</span>\n<span class=\"p\">}</span>\n\n<span class=\"n\">socket</span><span class=\"o\">.</span><span class=\"nf\">connect</span><span class=\"p\">()</span>\n</code></pre>\n<h2 id='features' class='heading'>Features</h2>\n\n<ul>\n<li>Supports socket.io 2.0+/3.0+.</li>\n<li>Supports Binary</li>\n<li>Supports Polling and WebSockets</li>\n<li>Supports TLS/SSL</li>\n</ul>\n<h2 id='faqs' class='heading'>FAQS</h2>\n\n<p>Checkout the <a href=\"https://nuclearace.github.io/Socket.IO-Client-Swift/faq.html\">FAQs</a> for commonly asked questions.</p>\n\n<p>Checkout the <a href=\"https://nuclearace.github.io/Socket.IO-Client-Swift/12to13.html\">12to13</a> guide for migrating to v13+ from v12 below.</p>\n\n<p>Checkout the <a href=\"https://nuclearace.github.io/Socket.IO-Client-Swift/15to16.html\">15to16</a> guide for migrating to v16+ from v15.</p>\n<h2 id='installation' class='heading'>Installation</h2>\n\n<p>Requires Swift 4/5 and Xcode 10.x</p>\n<h3 id='swift-package-manager' class='heading'>Swift Package Manager</h3>\n\n<p>Add the project as a dependency to your Package.swift:</p>\n<pre class=\"highlight swift\"><code><span class=\"c1\">// swift-tools-version:4.2</span>\n\n<span class=\"kd\">import</span> <span class=\"kt\">PackageDescription</span>\n\n<span class=\"k\">let</span> <span class=\"nv\">package</span> <span class=\"o\">=</span> <span class=\"kt\">Package</span><span class=\"p\">(</span>\n    <span class=\"nv\">name</span><span class=\"p\">:</span> <span class=\"s\">\"socket.io-test\"</span><span class=\"p\">,</span>\n    <span class=\"nv\">products</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n        <span class=\"o\">.</span><span class=\"nf\">executable</span><span class=\"p\">(</span><span class=\"nv\">name</span><span class=\"p\">:</span> <span class=\"s\">\"socket.io-test\"</span><span class=\"p\">,</span> <span class=\"nv\">targets</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s\">\"YourTargetName\"</span><span class=\"p\">])</span>\n    <span class=\"p\">],</span>\n    <span class=\"nv\">dependencies</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n        <span class=\"o\">.</span><span class=\"nf\">package</span><span class=\"p\">(</span><span class=\"nv\">url</span><span class=\"p\">:</span> <span class=\"s\">\"https://github.com/socketio/socket.io-client-swift\"</span><span class=\"p\">,</span> <span class=\"o\">.</span><span class=\"nf\">upToNextMinor</span><span class=\"p\">(</span><span class=\"nv\">from</span><span class=\"p\">:</span> <span class=\"s\">\"15.0.0\"</span><span class=\"p\">))</span>\n    <span class=\"p\">],</span>\n    <span class=\"nv\">targets</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n        <span class=\"o\">.</span><span class=\"nf\">target</span><span class=\"p\">(</span><span class=\"nv\">name</span><span class=\"p\">:</span> <span class=\"s\">\"YourTargetName\"</span><span class=\"p\">,</span> <span class=\"nv\">dependencies</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s\">\"SocketIO\"</span><span class=\"p\">],</span> <span class=\"nv\">path</span><span class=\"p\">:</span> <span class=\"s\">\"./Path/To/Your/Sources\"</span><span class=\"p\">)</span>\n    <span class=\"p\">]</span>\n<span class=\"p\">)</span>\n</code></pre>\n\n<p>Then import <code>import SocketIO</code>.</p>\n<h3 id='carthage' class='heading'>Carthage</h3>\n\n<p>Add this line to your <code>Cartfile</code>:</p>\n<pre class=\"highlight plaintext\"><code>github \"socketio/socket.io-client-swift\" ~&gt; 15.2.0\n</code></pre>\n\n<p>Run <code>carthage update --platform ios,macosx</code>.</p>\n\n<p>Add the <code>Starscream</code> and <code>SocketIO</code> frameworks to your projects and follow the usual Carthage process.</p>\n<h3 id='cocoapods-1-0-0-or-later' class='heading'>CocoaPods 1.0.0 or later</h3>\n\n<p>Create <code>Podfile</code> and add <code>pod &#39;Socket.IO-Client-Swift&#39;</code>:</p>\n<pre class=\"highlight ruby\"><code><span class=\"n\">use_frameworks!</span>\n\n<span class=\"n\">target</span> <span class=\"s1\">'YourApp'</span> <span class=\"k\">do</span>\n    <span class=\"n\">pod</span> <span class=\"s1\">'Socket.IO-Client-Swift'</span><span class=\"p\">,</span> <span class=\"s1\">'~&gt; 15.2.0'</span>\n<span class=\"k\">end</span>\n</code></pre>\n\n<p>Install pods:</p>\n<pre class=\"highlight plaintext\"><code>$ pod install\n</code></pre>\n\n<p>Import the module:</p>\n\n<p>Swift:</p>\n<pre class=\"highlight swift\"><code><span class=\"kd\">import</span> <span class=\"kt\">SocketIO</span>\n</code></pre>\n\n<p>Objective-C:</p>\n<pre class=\"highlight plaintext\"><code>@import SocketIO;\n</code></pre>\n<h1 id='a-href-https-nuclearace-github-io-socket-io-client-swift-index-html-docs-a' class='heading'><a href=\"https://nuclearace.github.io/Socket.IO-Client-Swift/index.html\">Docs</a></h1>\n\n<ul>\n<li><a href=\"https://nuclearace.github.io/Socket.IO-Client-Swift/Classes/SocketIOClient.html\">Client</a></li>\n<li><a href=\"https://nuclearace.github.io/Socket.IO-Client-Swift/Classes/SocketManager.html\">Manager</a></li>\n<li><a href=\"https://nuclearace.github.io/Socket.IO-Client-Swift/Classes/SocketEngine.html\">Engine</a></li>\n<li><a href=\"https://nuclearace.github.io/Socket.IO-Client-Swift/Enums/SocketIOClientOption.html\">Options</a></li>\n</ul>\n<h2 id='detailed-example' class='heading'>Detailed Example</h2>\n\n<p>A more detailed example can be found <a href=\"https://github.com/nuclearace/socket.io-client-swift-example\">here</a></p>\n\n<p>An example using the Swift Package Manager can be found <a href=\"https://github.com/nuclearace/socket.io-client-swift-spm-example\">here</a></p>\n<h2 id='license' class='heading'>License</h2>\n\n<p>MIT</p>\n\n          </div>\n        </section>\n\n\n      </article>\n    </div>\n    <section class=\"footer\">\n      <p>&copy; 2021 <a class=\"link\" href=\"https://github.com/socketio/socket.io-client-swift\" target=\"_blank\" rel=\"external\">Erik</a>. All rights reserved. (Last updated: 2021-02-01)</p>\n      <p>Generated by <a class=\"link\" href=\"https://github.com/realm/jazzy\" target=\"_blank\" rel=\"external\">jazzy ♪♫ v0.13.6</a>, a <a class=\"link\" href=\"https://realm.io\" target=\"_blank\" rel=\"external\">Realm</a> project.</p>\n    </section>\n  </body>\n</div>\n</html>\n"
  },
  {
    "path": "docs/js/jazzy.js",
    "content": "window.jazzy = {'docset': false}\nif (typeof window.dash != 'undefined') {\n  document.documentElement.className += ' dash'\n  window.jazzy.docset = true\n}\nif (navigator.userAgent.match(/xcode/i)) {\n  document.documentElement.className += ' xcode'\n  window.jazzy.docset = true\n}\n\nfunction toggleItem($link, $content) {\n  var animationDuration = 300;\n  $link.toggleClass('token-open');\n  $content.slideToggle(animationDuration);\n}\n\nfunction itemLinkToContent($link) {\n  return $link.parent().parent().next();\n}\n\n// On doc load + hash-change, open any targetted item\nfunction openCurrentItemIfClosed() {\n  if (window.jazzy.docset) {\n    return;\n  }\n  var $link = $(`a[name=\"${location.hash.substring(1)}\"]`).nextAll('.token');\n  $content = itemLinkToContent($link);\n  if ($content.is(':hidden')) {\n    toggleItem($link, $content);\n  }\n}\n\n$(openCurrentItemIfClosed);\n$(window).on('hashchange', openCurrentItemIfClosed);\n\n// On item link ('token') click, toggle its discussion\n$('.token').on('click', function(event) {\n  if (window.jazzy.docset) {\n    return;\n  }\n  var $link = $(this);\n  toggleItem($link, itemLinkToContent($link));\n\n  // Keeps the document from jumping to the hash.\n  var href = $link.attr('href');\n  if (history.pushState) {\n    history.pushState({}, '', href);\n  } else {\n    location.hash = href;\n  }\n  event.preventDefault();\n});\n\n// Clicks on links to the current, closed, item need to open the item\n$(\"a:not('.token')\").on('click', function() {\n  if (location == this.href) {\n    openCurrentItemIfClosed();\n  }\n});\n\n// KaTeX rendering\nif (\"katex\" in window) {\n  $($('.math').each( (_, element) => {\n    katex.render(element.textContent, element, {\n      displayMode: $(element).hasClass('m-block'),\n      throwOnError: false,\n      trust: true\n    });\n  }))\n}\n"
  },
  {
    "path": "docs/js/jazzy.search.js",
    "content": "$(function(){\n  var $typeahead = $('[data-typeahead]');\n  var $form = $typeahead.parents('form');\n  var searchURL = $form.attr('action');\n\n  function displayTemplate(result) {\n    return result.name;\n  }\n\n  function suggestionTemplate(result) {\n    var t = '<div class=\"list-group-item clearfix\">';\n    t += '<span class=\"doc-name\">' + result.name + '</span>';\n    if (result.parent_name) {\n     t += '<span class=\"doc-parent-name label\">' + result.parent_name + '</span>';\n    }\n    t += '</div>';\n    return t;\n  }\n\n  $typeahead.one('focus', function() {\n    $form.addClass('loading');\n\n    $.getJSON(searchURL).then(function(searchData) {\n      const searchIndex = lunr(function() {\n        this.ref('url');\n        this.field('name');\n        this.field('abstract');\n        for (const [url, doc] of Object.entries(searchData)) {\n          this.add({url: url, name: doc.name, abstract: doc.abstract});\n        }\n      });\n\n      $typeahead.typeahead(\n        {\n          highlight: true,\n          minLength: 3,\n          autoselect: true\n        },\n        {\n          limit: 10,\n          display: displayTemplate,\n          templates: { suggestion: suggestionTemplate },\n          source: function(query, sync) {\n            const lcSearch = query.toLowerCase();\n            const results = searchIndex.query(function(q) {\n                q.term(lcSearch, { boost: 100 });\n                q.term(lcSearch, {\n                  boost: 10,\n                  wildcard: lunr.Query.wildcard.TRAILING\n                });\n            }).map(function(result) {\n              var doc = searchData[result.ref];\n              doc.url = result.ref;\n              return doc;\n            });\n            sync(results);\n          }\n        }\n      );\n      $form.removeClass('loading');\n      $typeahead.trigger('focus');\n    });\n  });\n\n  var baseURL = searchURL.slice(0, -\"search.json\".length);\n\n  $typeahead.on('typeahead:select', function(e, result) {\n    window.location = baseURL + result.url;\n  });\n});\n"
  },
  {
    "path": "docs/js/typeahead.jquery.js",
    "content": "/*!\n * typeahead.js 1.3.1\n * https://github.com/corejavascript/typeahead.js\n * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT\n */\n\n\n(function(root, factory) {\n    if (typeof define === \"function\" && define.amd) {\n        define([ \"jquery\" ], function(a0) {\n            return factory(a0);\n        });\n    } else if (typeof module === \"object\" && module.exports) {\n        module.exports = factory(require(\"jquery\"));\n    } else {\n        factory(root[\"jQuery\"]);\n    }\n})(this, function($) {\n    var _ = function() {\n        \"use strict\";\n        return {\n            isMsie: function() {\n                return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\\d+(.\\d+)?)/i)[2] : false;\n            },\n            isBlankString: function(str) {\n                return !str || /^\\s*$/.test(str);\n            },\n            escapeRegExChars: function(str) {\n                return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n            },\n            isString: function(obj) {\n                return typeof obj === \"string\";\n            },\n            isNumber: function(obj) {\n                return typeof obj === \"number\";\n            },\n            isArray: $.isArray,\n            isFunction: $.isFunction,\n            isObject: $.isPlainObject,\n            isUndefined: function(obj) {\n                return typeof obj === \"undefined\";\n            },\n            isElement: function(obj) {\n                return !!(obj && obj.nodeType === 1);\n            },\n            isJQuery: function(obj) {\n                return obj instanceof $;\n            },\n            toStr: function toStr(s) {\n                return _.isUndefined(s) || s === null ? \"\" : s + \"\";\n            },\n            bind: $.proxy,\n            each: function(collection, cb) {\n                $.each(collection, reverseArgs);\n                function reverseArgs(index, value) {\n                    return cb(value, index);\n                }\n            },\n            map: $.map,\n            filter: $.grep,\n            every: function(obj, test) {\n                var result = true;\n                if (!obj) {\n                    return result;\n                }\n                $.each(obj, function(key, val) {\n                    if (!(result = test.call(null, val, key, obj))) {\n                        return false;\n                    }\n                });\n                return !!result;\n            },\n            some: function(obj, test) {\n                var result = false;\n                if (!obj) {\n                    return result;\n                }\n                $.each(obj, function(key, val) {\n                    if (result = test.call(null, val, key, obj)) {\n                        return false;\n                    }\n                });\n                return !!result;\n            },\n            mixin: $.extend,\n            identity: function(x) {\n                return x;\n            },\n            clone: function(obj) {\n                return $.extend(true, {}, obj);\n            },\n            getIdGenerator: function() {\n                var counter = 0;\n                return function() {\n                    return counter++;\n                };\n            },\n            templatify: function templatify(obj) {\n                return $.isFunction(obj) ? obj : template;\n                function template() {\n                    return String(obj);\n                }\n            },\n            defer: function(fn) {\n                setTimeout(fn, 0);\n            },\n            debounce: function(func, wait, immediate) {\n                var timeout, result;\n                return function() {\n                    var context = this, args = arguments, later, callNow;\n                    later = function() {\n                        timeout = null;\n                        if (!immediate) {\n                            result = func.apply(context, args);\n                        }\n                    };\n                    callNow = immediate && !timeout;\n                    clearTimeout(timeout);\n                    timeout = setTimeout(later, wait);\n                    if (callNow) {\n                        result = func.apply(context, args);\n                    }\n                    return result;\n                };\n            },\n            throttle: function(func, wait) {\n                var context, args, timeout, result, previous, later;\n                previous = 0;\n                later = function() {\n                    previous = new Date();\n                    timeout = null;\n                    result = func.apply(context, args);\n                };\n                return function() {\n                    var now = new Date(), remaining = wait - (now - previous);\n                    context = this;\n                    args = arguments;\n                    if (remaining <= 0) {\n                        clearTimeout(timeout);\n                        timeout = null;\n                        previous = now;\n                        result = func.apply(context, args);\n                    } else if (!timeout) {\n                        timeout = setTimeout(later, remaining);\n                    }\n                    return result;\n                };\n            },\n            stringify: function(val) {\n                return _.isString(val) ? val : JSON.stringify(val);\n            },\n            guid: function() {\n                function _p8(s) {\n                    var p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n                    return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n                }\n                return \"tt-\" + _p8() + _p8(true) + _p8(true) + _p8();\n            },\n            noop: function() {}\n        };\n    }();\n    var WWW = function() {\n        \"use strict\";\n        var defaultClassNames = {\n            wrapper: \"twitter-typeahead\",\n            input: \"tt-input\",\n            hint: \"tt-hint\",\n            menu: \"tt-menu\",\n            dataset: \"tt-dataset\",\n            suggestion: \"tt-suggestion\",\n            selectable: \"tt-selectable\",\n            empty: \"tt-empty\",\n            open: \"tt-open\",\n            cursor: \"tt-cursor\",\n            highlight: \"tt-highlight\"\n        };\n        return build;\n        function build(o) {\n            var www, classes;\n            classes = _.mixin({}, defaultClassNames, o);\n            www = {\n                css: buildCss(),\n                classes: classes,\n                html: buildHtml(classes),\n                selectors: buildSelectors(classes)\n            };\n            return {\n                css: www.css,\n                html: www.html,\n                classes: www.classes,\n                selectors: www.selectors,\n                mixin: function(o) {\n                    _.mixin(o, www);\n                }\n            };\n        }\n        function buildHtml(c) {\n            return {\n                wrapper: '<span class=\"' + c.wrapper + '\"></span>',\n                menu: '<div role=\"listbox\" class=\"' + c.menu + '\"></div>'\n            };\n        }\n        function buildSelectors(classes) {\n            var selectors = {};\n            _.each(classes, function(v, k) {\n                selectors[k] = \".\" + v;\n            });\n            return selectors;\n        }\n        function buildCss() {\n            var css = {\n                wrapper: {\n                    position: \"relative\",\n                    display: \"inline-block\"\n                },\n                hint: {\n                    position: \"absolute\",\n                    top: \"0\",\n                    left: \"0\",\n                    borderColor: \"transparent\",\n                    boxShadow: \"none\",\n                    opacity: \"1\"\n                },\n                input: {\n                    position: \"relative\",\n                    verticalAlign: \"top\",\n                    backgroundColor: \"transparent\"\n                },\n                inputWithNoHint: {\n                    position: \"relative\",\n                    verticalAlign: \"top\"\n                },\n                menu: {\n                    position: \"absolute\",\n                    top: \"100%\",\n                    left: \"0\",\n                    zIndex: \"100\",\n                    display: \"none\"\n                },\n                ltr: {\n                    left: \"0\",\n                    right: \"auto\"\n                },\n                rtl: {\n                    left: \"auto\",\n                    right: \" 0\"\n                }\n            };\n            if (_.isMsie()) {\n                _.mixin(css.input, {\n                    backgroundImage: \"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)\"\n                });\n            }\n            return css;\n        }\n    }();\n    var EventBus = function() {\n        \"use strict\";\n        var namespace, deprecationMap;\n        namespace = \"typeahead:\";\n        deprecationMap = {\n            render: \"rendered\",\n            cursorchange: \"cursorchanged\",\n            select: \"selected\",\n            autocomplete: \"autocompleted\"\n        };\n        function EventBus(o) {\n            if (!o || !o.el) {\n                $.error(\"EventBus initialized without el\");\n            }\n            this.$el = $(o.el);\n        }\n        _.mixin(EventBus.prototype, {\n            _trigger: function(type, args) {\n                var $e = $.Event(namespace + type);\n                this.$el.trigger.call(this.$el, $e, args || []);\n                return $e;\n            },\n            before: function(type) {\n                var args, $e;\n                args = [].slice.call(arguments, 1);\n                $e = this._trigger(\"before\" + type, args);\n                return $e.isDefaultPrevented();\n            },\n            trigger: function(type) {\n                var deprecatedType;\n                this._trigger(type, [].slice.call(arguments, 1));\n                if (deprecatedType = deprecationMap[type]) {\n                    this._trigger(deprecatedType, [].slice.call(arguments, 1));\n                }\n            }\n        });\n        return EventBus;\n    }();\n    var EventEmitter = function() {\n        \"use strict\";\n        var splitter = /\\s+/, nextTick = getNextTick();\n        return {\n            onSync: onSync,\n            onAsync: onAsync,\n            off: off,\n            trigger: trigger\n        };\n        function on(method, types, cb, context) {\n            var type;\n            if (!cb) {\n                return this;\n            }\n            types = types.split(splitter);\n            cb = context ? bindContext(cb, context) : cb;\n            this._callbacks = this._callbacks || {};\n            while (type = types.shift()) {\n                this._callbacks[type] = this._callbacks[type] || {\n                    sync: [],\n                    async: []\n                };\n                this._callbacks[type][method].push(cb);\n            }\n            return this;\n        }\n        function onAsync(types, cb, context) {\n            return on.call(this, \"async\", types, cb, context);\n        }\n        function onSync(types, cb, context) {\n            return on.call(this, \"sync\", types, cb, context);\n        }\n        function off(types) {\n            var type;\n            if (!this._callbacks) {\n                return this;\n            }\n            types = types.split(splitter);\n            while (type = types.shift()) {\n                delete this._callbacks[type];\n            }\n            return this;\n        }\n        function trigger(types) {\n            var type, callbacks, args, syncFlush, asyncFlush;\n            if (!this._callbacks) {\n                return this;\n            }\n            types = types.split(splitter);\n            args = [].slice.call(arguments, 1);\n            while ((type = types.shift()) && (callbacks = this._callbacks[type])) {\n                syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args));\n                asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args));\n                syncFlush() && nextTick(asyncFlush);\n            }\n            return this;\n        }\n        function getFlush(callbacks, context, args) {\n            return flush;\n            function flush() {\n                var cancelled;\n                for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) {\n                    cancelled = callbacks[i].apply(context, args) === false;\n                }\n                return !cancelled;\n            }\n        }\n        function getNextTick() {\n            var nextTickFn;\n            if (window.setImmediate) {\n                nextTickFn = function nextTickSetImmediate(fn) {\n                    setImmediate(function() {\n                        fn();\n                    });\n                };\n            } else {\n                nextTickFn = function nextTickSetTimeout(fn) {\n                    setTimeout(function() {\n                        fn();\n                    }, 0);\n                };\n            }\n            return nextTickFn;\n        }\n        function bindContext(fn, context) {\n            return fn.bind ? fn.bind(context) : function() {\n                fn.apply(context, [].slice.call(arguments, 0));\n            };\n        }\n    }();\n    var highlight = function(doc) {\n        \"use strict\";\n        var defaults = {\n            node: null,\n            pattern: null,\n            tagName: \"strong\",\n            className: null,\n            wordsOnly: false,\n            caseSensitive: false,\n            diacriticInsensitive: false\n        };\n        var accented = {\n            A: \"[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Ａａ]\",\n            B: \"[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Ｂｂ]\",\n            C: \"[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Ｃｃ]\",\n            D: \"[DdĎďǄ-ǆǱ-ǳᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Ｄｄ]\",\n            E: \"[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ｅｅ]\",\n            F: \"[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ﬀ-ﬄＦｆ]\",\n            G: \"[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Ｇｇ]\",\n            H: \"[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Ｈｈ]\",\n            I: \"[IiÌ-Ïì-ïĨ-İĲĳǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕ﬁﬃＩｉ]\",\n            J: \"[JjĲ-ĵǇ-ǌǰʲᴶⅉ⒥ⒿⓙⱼＪｊ]\",\n            K: \"[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Ｋｋ]\",\n            L: \"[LlĹ-ŀǇ-ǉˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿ﬂﬄＬｌ]\",\n            M: \"[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Ｍｍ]\",\n            N: \"[NnÑñŃ-ŉǊ-ǌǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Ｎｎ]\",\n            O: \"[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Ｏｏ]\",\n            P: \"[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Ｐｐ]\",\n            Q: \"[Qqℚ⒬Ⓠⓠ㏃Ｑｑ]\",\n            R: \"[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Ｒｒ]\",\n            S: \"[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜ﬆＳｓ]\",\n            T: \"[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ﬅﬆＴｔ]\",\n            U: \"[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Ｕｕ]\",\n            V: \"[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Ｖｖ]\",\n            W: \"[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ｗｗ]\",\n            X: \"[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Ｘｘ]\",\n            Y: \"[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Ｙｙ]\",\n            Z: \"[ZzŹ-žǱ-ǳᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Ｚｚ]\"\n        };\n        return function hightlight(o) {\n            var regex;\n            o = _.mixin({}, defaults, o);\n            if (!o.node || !o.pattern) {\n                return;\n            }\n            o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ];\n            regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive);\n            traverse(o.node, hightlightTextNode);\n            function hightlightTextNode(textNode) {\n                var match, patternNode, wrapperNode;\n                if (match = regex.exec(textNode.data)) {\n                    wrapperNode = doc.createElement(o.tagName);\n                    o.className && (wrapperNode.className = o.className);\n                    patternNode = textNode.splitText(match.index);\n                    patternNode.splitText(match[0].length);\n                    wrapperNode.appendChild(patternNode.cloneNode(true));\n                    textNode.parentNode.replaceChild(wrapperNode, patternNode);\n                }\n                return !!match;\n            }\n            function traverse(el, hightlightTextNode) {\n                var childNode, TEXT_NODE_TYPE = 3;\n                for (var i = 0; i < el.childNodes.length; i++) {\n                    childNode = el.childNodes[i];\n                    if (childNode.nodeType === TEXT_NODE_TYPE) {\n                        i += hightlightTextNode(childNode) ? 1 : 0;\n                    } else {\n                        traverse(childNode, hightlightTextNode);\n                    }\n                }\n            }\n        };\n        function accent_replacer(chr) {\n            return accented[chr.toUpperCase()] || chr;\n        }\n        function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) {\n            var escapedPatterns = [], regexStr;\n            for (var i = 0, len = patterns.length; i < len; i++) {\n                var escapedWord = _.escapeRegExChars(patterns[i]);\n                if (diacriticInsensitive) {\n                    escapedWord = escapedWord.replace(/\\S/g, accent_replacer);\n                }\n                escapedPatterns.push(escapedWord);\n            }\n            regexStr = wordsOnly ? \"\\\\b(\" + escapedPatterns.join(\"|\") + \")\\\\b\" : \"(\" + escapedPatterns.join(\"|\") + \")\";\n            return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, \"i\");\n        }\n    }(window.document);\n    var Input = function() {\n        \"use strict\";\n        var specialKeyCodeMap;\n        specialKeyCodeMap = {\n            9: \"tab\",\n            27: \"esc\",\n            37: \"left\",\n            39: \"right\",\n            13: \"enter\",\n            38: \"up\",\n            40: \"down\"\n        };\n        function Input(o, www) {\n            var id;\n            o = o || {};\n            if (!o.input) {\n                $.error(\"input is missing\");\n            }\n            www.mixin(this);\n            this.$hint = $(o.hint);\n            this.$input = $(o.input);\n            this.$menu = $(o.menu);\n            id = this.$input.attr(\"id\") || _.guid();\n            this.$menu.attr(\"id\", id + \"_listbox\");\n            this.$hint.attr({\n                \"aria-hidden\": true\n            });\n            this.$input.attr({\n                \"aria-owns\": id + \"_listbox\",\n                role: \"combobox\",\n                \"aria-autocomplete\": \"list\",\n                \"aria-expanded\": false\n            });\n            this.query = this.$input.val();\n            this.queryWhenFocused = this.hasFocus() ? this.query : null;\n            this.$overflowHelper = buildOverflowHelper(this.$input);\n            this._checkLanguageDirection();\n            if (this.$hint.length === 0) {\n                this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop;\n            }\n            this.onSync(\"cursorchange\", this._updateDescendent);\n        }\n        Input.normalizeQuery = function(str) {\n            return _.toStr(str).replace(/^\\s*/g, \"\").replace(/\\s{2,}/g, \" \");\n        };\n        _.mixin(Input.prototype, EventEmitter, {\n            _onBlur: function onBlur() {\n                this.resetInputValue();\n                this.trigger(\"blurred\");\n            },\n            _onFocus: function onFocus() {\n                this.queryWhenFocused = this.query;\n                this.trigger(\"focused\");\n            },\n            _onKeydown: function onKeydown($e) {\n                var keyName = specialKeyCodeMap[$e.which || $e.keyCode];\n                this._managePreventDefault(keyName, $e);\n                if (keyName && this._shouldTrigger(keyName, $e)) {\n                    this.trigger(keyName + \"Keyed\", $e);\n                }\n            },\n            _onInput: function onInput() {\n                this._setQuery(this.getInputValue());\n                this.clearHintIfInvalid();\n                this._checkLanguageDirection();\n            },\n            _managePreventDefault: function managePreventDefault(keyName, $e) {\n                var preventDefault;\n                switch (keyName) {\n                  case \"up\":\n                  case \"down\":\n                    preventDefault = !withModifier($e);\n                    break;\n\n                  default:\n                    preventDefault = false;\n                }\n                preventDefault && $e.preventDefault();\n            },\n            _shouldTrigger: function shouldTrigger(keyName, $e) {\n                var trigger;\n                switch (keyName) {\n                  case \"tab\":\n                    trigger = !withModifier($e);\n                    break;\n\n                  default:\n                    trigger = true;\n                }\n                return trigger;\n            },\n            _checkLanguageDirection: function checkLanguageDirection() {\n                var dir = (this.$input.css(\"direction\") || \"ltr\").toLowerCase();\n                if (this.dir !== dir) {\n                    this.dir = dir;\n                    this.$hint.attr(\"dir\", dir);\n                    this.trigger(\"langDirChanged\", dir);\n                }\n            },\n            _setQuery: function setQuery(val, silent) {\n                var areEquivalent, hasDifferentWhitespace;\n                areEquivalent = areQueriesEquivalent(val, this.query);\n                hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false;\n                this.query = val;\n                if (!silent && !areEquivalent) {\n                    this.trigger(\"queryChanged\", this.query);\n                } else if (!silent && hasDifferentWhitespace) {\n                    this.trigger(\"whitespaceChanged\", this.query);\n                }\n            },\n            _updateDescendent: function updateDescendent(event, id) {\n                this.$input.attr(\"aria-activedescendant\", id);\n            },\n            bind: function() {\n                var that = this, onBlur, onFocus, onKeydown, onInput;\n                onBlur = _.bind(this._onBlur, this);\n                onFocus = _.bind(this._onFocus, this);\n                onKeydown = _.bind(this._onKeydown, this);\n                onInput = _.bind(this._onInput, this);\n                this.$input.on(\"blur.tt\", onBlur).on(\"focus.tt\", onFocus).on(\"keydown.tt\", onKeydown);\n                if (!_.isMsie() || _.isMsie() > 9) {\n                    this.$input.on(\"input.tt\", onInput);\n                } else {\n                    this.$input.on(\"keydown.tt keypress.tt cut.tt paste.tt\", function($e) {\n                        if (specialKeyCodeMap[$e.which || $e.keyCode]) {\n                            return;\n                        }\n                        _.defer(_.bind(that._onInput, that, $e));\n                    });\n                }\n                return this;\n            },\n            focus: function focus() {\n                this.$input.focus();\n            },\n            blur: function blur() {\n                this.$input.blur();\n            },\n            getLangDir: function getLangDir() {\n                return this.dir;\n            },\n            getQuery: function getQuery() {\n                return this.query || \"\";\n            },\n            setQuery: function setQuery(val, silent) {\n                this.setInputValue(val);\n                this._setQuery(val, silent);\n            },\n            hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() {\n                return this.query !== this.queryWhenFocused;\n            },\n            getInputValue: function getInputValue() {\n                return this.$input.val();\n            },\n            setInputValue: function setInputValue(value) {\n                this.$input.val(value);\n                this.clearHintIfInvalid();\n                this._checkLanguageDirection();\n            },\n            resetInputValue: function resetInputValue() {\n                this.setInputValue(this.query);\n            },\n            getHint: function getHint() {\n                return this.$hint.val();\n            },\n            setHint: function setHint(value) {\n                this.$hint.val(value);\n            },\n            clearHint: function clearHint() {\n                this.setHint(\"\");\n            },\n            clearHintIfInvalid: function clearHintIfInvalid() {\n                var val, hint, valIsPrefixOfHint, isValid;\n                val = this.getInputValue();\n                hint = this.getHint();\n                valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0;\n                isValid = val !== \"\" && valIsPrefixOfHint && !this.hasOverflow();\n                !isValid && this.clearHint();\n            },\n            hasFocus: function hasFocus() {\n                return this.$input.is(\":focus\");\n            },\n            hasOverflow: function hasOverflow() {\n                var constraint = this.$input.width() - 2;\n                this.$overflowHelper.text(this.getInputValue());\n                return this.$overflowHelper.width() >= constraint;\n            },\n            isCursorAtEnd: function() {\n                var valueLength, selectionStart, range;\n                valueLength = this.$input.val().length;\n                selectionStart = this.$input[0].selectionStart;\n                if (_.isNumber(selectionStart)) {\n                    return selectionStart === valueLength;\n                } else if (document.selection) {\n                    range = document.selection.createRange();\n                    range.moveStart(\"character\", -valueLength);\n                    return valueLength === range.text.length;\n                }\n                return true;\n            },\n            destroy: function destroy() {\n                this.$hint.off(\".tt\");\n                this.$input.off(\".tt\");\n                this.$overflowHelper.remove();\n                this.$hint = this.$input = this.$overflowHelper = $(\"<div>\");\n            },\n            setAriaExpanded: function setAriaExpanded(value) {\n                this.$input.attr(\"aria-expanded\", value);\n            }\n        });\n        return Input;\n        function buildOverflowHelper($input) {\n            return $('<pre aria-hidden=\"true\"></pre>').css({\n                position: \"absolute\",\n                visibility: \"hidden\",\n                whiteSpace: \"pre\",\n                fontFamily: $input.css(\"font-family\"),\n                fontSize: $input.css(\"font-size\"),\n                fontStyle: $input.css(\"font-style\"),\n                fontVariant: $input.css(\"font-variant\"),\n                fontWeight: $input.css(\"font-weight\"),\n                wordSpacing: $input.css(\"word-spacing\"),\n                letterSpacing: $input.css(\"letter-spacing\"),\n                textIndent: $input.css(\"text-indent\"),\n                textRendering: $input.css(\"text-rendering\"),\n                textTransform: $input.css(\"text-transform\")\n            }).insertAfter($input);\n        }\n        function areQueriesEquivalent(a, b) {\n            return Input.normalizeQuery(a) === Input.normalizeQuery(b);\n        }\n        function withModifier($e) {\n            return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey;\n        }\n    }();\n    var Dataset = function() {\n        \"use strict\";\n        var keys, nameGenerator;\n        keys = {\n            dataset: \"tt-selectable-dataset\",\n            val: \"tt-selectable-display\",\n            obj: \"tt-selectable-object\"\n        };\n        nameGenerator = _.getIdGenerator();\n        function Dataset(o, www) {\n            o = o || {};\n            o.templates = o.templates || {};\n            o.templates.notFound = o.templates.notFound || o.templates.empty;\n            if (!o.source) {\n                $.error(\"missing source\");\n            }\n            if (!o.node) {\n                $.error(\"missing node\");\n            }\n            if (o.name && !isValidName(o.name)) {\n                $.error(\"invalid dataset name: \" + o.name);\n            }\n            www.mixin(this);\n            this.highlight = !!o.highlight;\n            this.name = _.toStr(o.name || nameGenerator());\n            this.limit = o.limit || 5;\n            this.displayFn = getDisplayFn(o.display || o.displayKey);\n            this.templates = getTemplates(o.templates, this.displayFn);\n            this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source;\n            this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async;\n            this._resetLastSuggestion();\n            this.$el = $(o.node).attr(\"role\", \"presentation\").addClass(this.classes.dataset).addClass(this.classes.dataset + \"-\" + this.name);\n        }\n        Dataset.extractData = function extractData(el) {\n            var $el = $(el);\n            if ($el.data(keys.obj)) {\n                return {\n                    dataset: $el.data(keys.dataset) || \"\",\n                    val: $el.data(keys.val) || \"\",\n                    obj: $el.data(keys.obj) || null\n                };\n            }\n            return null;\n        };\n        _.mixin(Dataset.prototype, EventEmitter, {\n            _overwrite: function overwrite(query, suggestions) {\n                suggestions = suggestions || [];\n                if (suggestions.length) {\n                    this._renderSuggestions(query, suggestions);\n                } else if (this.async && this.templates.pending) {\n                    this._renderPending(query);\n                } else if (!this.async && this.templates.notFound) {\n                    this._renderNotFound(query);\n                } else {\n                    this._empty();\n                }\n                this.trigger(\"rendered\", suggestions, false, this.name);\n            },\n            _append: function append(query, suggestions) {\n                suggestions = suggestions || [];\n                if (suggestions.length && this.$lastSuggestion.length) {\n                    this._appendSuggestions(query, suggestions);\n                } else if (suggestions.length) {\n                    this._renderSuggestions(query, suggestions);\n                } else if (!this.$lastSuggestion.length && this.templates.notFound) {\n                    this._renderNotFound(query);\n                }\n                this.trigger(\"rendered\", suggestions, true, this.name);\n            },\n            _renderSuggestions: function renderSuggestions(query, suggestions) {\n                var $fragment;\n                $fragment = this._getSuggestionsFragment(query, suggestions);\n                this.$lastSuggestion = $fragment.children().last();\n                this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions));\n            },\n            _appendSuggestions: function appendSuggestions(query, suggestions) {\n                var $fragment, $lastSuggestion;\n                $fragment = this._getSuggestionsFragment(query, suggestions);\n                $lastSuggestion = $fragment.children().last();\n                this.$lastSuggestion.after($fragment);\n                this.$lastSuggestion = $lastSuggestion;\n            },\n            _renderPending: function renderPending(query) {\n                var template = this.templates.pending;\n                this._resetLastSuggestion();\n                template && this.$el.html(template({\n                    query: query,\n                    dataset: this.name\n                }));\n            },\n            _renderNotFound: function renderNotFound(query) {\n                var template = this.templates.notFound;\n                this._resetLastSuggestion();\n                template && this.$el.html(template({\n                    query: query,\n                    dataset: this.name\n                }));\n            },\n            _empty: function empty() {\n                this.$el.empty();\n                this._resetLastSuggestion();\n            },\n            _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) {\n                var that = this, fragment;\n                fragment = document.createDocumentFragment();\n                _.each(suggestions, function getSuggestionNode(suggestion) {\n                    var $el, context;\n                    context = that._injectQuery(query, suggestion);\n                    $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + \" \" + that.classes.selectable);\n                    fragment.appendChild($el[0]);\n                });\n                this.highlight && highlight({\n                    className: this.classes.highlight,\n                    node: fragment,\n                    pattern: query\n                });\n                return $(fragment);\n            },\n            _getFooter: function getFooter(query, suggestions) {\n                return this.templates.footer ? this.templates.footer({\n                    query: query,\n                    suggestions: suggestions,\n                    dataset: this.name\n                }) : null;\n            },\n            _getHeader: function getHeader(query, suggestions) {\n                return this.templates.header ? this.templates.header({\n                    query: query,\n                    suggestions: suggestions,\n                    dataset: this.name\n                }) : null;\n            },\n            _resetLastSuggestion: function resetLastSuggestion() {\n                this.$lastSuggestion = $();\n            },\n            _injectQuery: function injectQuery(query, obj) {\n                return _.isObject(obj) ? _.mixin({\n                    _query: query\n                }, obj) : obj;\n            },\n            update: function update(query) {\n                var that = this, canceled = false, syncCalled = false, rendered = 0;\n                this.cancel();\n                this.cancel = function cancel() {\n                    canceled = true;\n                    that.cancel = $.noop;\n                    that.async && that.trigger(\"asyncCanceled\", query, that.name);\n                };\n                this.source(query, sync, async);\n                !syncCalled && sync([]);\n                function sync(suggestions) {\n                    if (syncCalled) {\n                        return;\n                    }\n                    syncCalled = true;\n                    suggestions = (suggestions || []).slice(0, that.limit);\n                    rendered = suggestions.length;\n                    that._overwrite(query, suggestions);\n                    if (rendered < that.limit && that.async) {\n                        that.trigger(\"asyncRequested\", query, that.name);\n                    }\n                }\n                function async(suggestions) {\n                    suggestions = suggestions || [];\n                    if (!canceled && rendered < that.limit) {\n                        that.cancel = $.noop;\n                        var idx = Math.abs(rendered - that.limit);\n                        rendered += idx;\n                        that._append(query, suggestions.slice(0, idx));\n                        that.async && that.trigger(\"asyncReceived\", query, that.name);\n                    }\n                }\n            },\n            cancel: $.noop,\n            clear: function clear() {\n                this._empty();\n                this.cancel();\n                this.trigger(\"cleared\");\n            },\n            isEmpty: function isEmpty() {\n                return this.$el.is(\":empty\");\n            },\n            destroy: function destroy() {\n                this.$el = $(\"<div>\");\n            }\n        });\n        return Dataset;\n        function getDisplayFn(display) {\n            display = display || _.stringify;\n            return _.isFunction(display) ? display : displayFn;\n            function displayFn(obj) {\n                return obj[display];\n            }\n        }\n        function getTemplates(templates, displayFn) {\n            return {\n                notFound: templates.notFound && _.templatify(templates.notFound),\n                pending: templates.pending && _.templatify(templates.pending),\n                header: templates.header && _.templatify(templates.header),\n                footer: templates.footer && _.templatify(templates.footer),\n                suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate\n            };\n            function userSuggestionTemplate(context) {\n                var template = templates.suggestion;\n                return $(template(context)).attr(\"id\", _.guid());\n            }\n            function suggestionTemplate(context) {\n                return $('<div role=\"option\">').attr(\"id\", _.guid()).text(displayFn(context));\n            }\n        }\n        function isValidName(str) {\n            return /^[_a-zA-Z0-9-]+$/.test(str);\n        }\n    }();\n    var Menu = function() {\n        \"use strict\";\n        function Menu(o, www) {\n            var that = this;\n            o = o || {};\n            if (!o.node) {\n                $.error(\"node is required\");\n            }\n            www.mixin(this);\n            this.$node = $(o.node);\n            this.query = null;\n            this.datasets = _.map(o.datasets, initializeDataset);\n            function initializeDataset(oDataset) {\n                var node = that.$node.find(oDataset.node).first();\n                oDataset.node = node.length ? node : $(\"<div>\").appendTo(that.$node);\n                return new Dataset(oDataset, www);\n            }\n        }\n        _.mixin(Menu.prototype, EventEmitter, {\n            _onSelectableClick: function onSelectableClick($e) {\n                this.trigger(\"selectableClicked\", $($e.currentTarget));\n            },\n            _onRendered: function onRendered(type, dataset, suggestions, async) {\n                this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty());\n                this.trigger(\"datasetRendered\", dataset, suggestions, async);\n            },\n            _onCleared: function onCleared() {\n                this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty());\n                this.trigger(\"datasetCleared\");\n            },\n            _propagate: function propagate() {\n                this.trigger.apply(this, arguments);\n            },\n            _allDatasetsEmpty: function allDatasetsEmpty() {\n                return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) {\n                    var isEmpty = dataset.isEmpty();\n                    this.$node.attr(\"aria-expanded\", !isEmpty);\n                    return isEmpty;\n                }, this));\n            },\n            _getSelectables: function getSelectables() {\n                return this.$node.find(this.selectors.selectable);\n            },\n            _removeCursor: function _removeCursor() {\n                var $selectable = this.getActiveSelectable();\n                $selectable && $selectable.removeClass(this.classes.cursor);\n            },\n            _ensureVisible: function ensureVisible($el) {\n                var elTop, elBottom, nodeScrollTop, nodeHeight;\n                elTop = $el.position().top;\n                elBottom = elTop + $el.outerHeight(true);\n                nodeScrollTop = this.$node.scrollTop();\n                nodeHeight = this.$node.height() + parseInt(this.$node.css(\"paddingTop\"), 10) + parseInt(this.$node.css(\"paddingBottom\"), 10);\n                if (elTop < 0) {\n                    this.$node.scrollTop(nodeScrollTop + elTop);\n                } else if (nodeHeight < elBottom) {\n                    this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight));\n                }\n            },\n            bind: function() {\n                var that = this, onSelectableClick;\n                onSelectableClick = _.bind(this._onSelectableClick, this);\n                this.$node.on(\"click.tt\", this.selectors.selectable, onSelectableClick);\n                this.$node.on(\"mouseover\", this.selectors.selectable, function() {\n                    that.setCursor($(this));\n                });\n                this.$node.on(\"mouseleave\", function() {\n                    that._removeCursor();\n                });\n                _.each(this.datasets, function(dataset) {\n                    dataset.onSync(\"asyncRequested\", that._propagate, that).onSync(\"asyncCanceled\", that._propagate, that).onSync(\"asyncReceived\", that._propagate, that).onSync(\"rendered\", that._onRendered, that).onSync(\"cleared\", that._onCleared, that);\n                });\n                return this;\n            },\n            isOpen: function isOpen() {\n                return this.$node.hasClass(this.classes.open);\n            },\n            open: function open() {\n                this.$node.scrollTop(0);\n                this.$node.addClass(this.classes.open);\n            },\n            close: function close() {\n                this.$node.attr(\"aria-expanded\", false);\n                this.$node.removeClass(this.classes.open);\n                this._removeCursor();\n            },\n            setLanguageDirection: function setLanguageDirection(dir) {\n                this.$node.attr(\"dir\", dir);\n            },\n            selectableRelativeToCursor: function selectableRelativeToCursor(delta) {\n                var $selectables, $oldCursor, oldIndex, newIndex;\n                $oldCursor = this.getActiveSelectable();\n                $selectables = this._getSelectables();\n                oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1;\n                newIndex = oldIndex + delta;\n                newIndex = (newIndex + 1) % ($selectables.length + 1) - 1;\n                newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex;\n                return newIndex === -1 ? null : $selectables.eq(newIndex);\n            },\n            setCursor: function setCursor($selectable) {\n                this._removeCursor();\n                if ($selectable = $selectable && $selectable.first()) {\n                    $selectable.addClass(this.classes.cursor);\n                    this._ensureVisible($selectable);\n                }\n            },\n            getSelectableData: function getSelectableData($el) {\n                return $el && $el.length ? Dataset.extractData($el) : null;\n            },\n            getActiveSelectable: function getActiveSelectable() {\n                var $selectable = this._getSelectables().filter(this.selectors.cursor).first();\n                return $selectable.length ? $selectable : null;\n            },\n            getTopSelectable: function getTopSelectable() {\n                var $selectable = this._getSelectables().first();\n                return $selectable.length ? $selectable : null;\n            },\n            update: function update(query) {\n                var isValidUpdate = query !== this.query;\n                if (isValidUpdate) {\n                    this.query = query;\n                    _.each(this.datasets, updateDataset);\n                }\n                return isValidUpdate;\n                function updateDataset(dataset) {\n                    dataset.update(query);\n                }\n            },\n            empty: function empty() {\n                _.each(this.datasets, clearDataset);\n                this.query = null;\n                this.$node.addClass(this.classes.empty);\n                function clearDataset(dataset) {\n                    dataset.clear();\n                }\n            },\n            destroy: function destroy() {\n                this.$node.off(\".tt\");\n                this.$node = $(\"<div>\");\n                _.each(this.datasets, destroyDataset);\n                function destroyDataset(dataset) {\n                    dataset.destroy();\n                }\n            }\n        });\n        return Menu;\n    }();\n    var Status = function() {\n        \"use strict\";\n        function Status(options) {\n            this.$el = $(\"<span></span>\", {\n                role: \"status\",\n                \"aria-live\": \"polite\"\n            }).css({\n                position: \"absolute\",\n                padding: \"0\",\n                border: \"0\",\n                height: \"1px\",\n                width: \"1px\",\n                \"margin-bottom\": \"-1px\",\n                \"margin-right\": \"-1px\",\n                overflow: \"hidden\",\n                clip: \"rect(0 0 0 0)\",\n                \"white-space\": \"nowrap\"\n            });\n            options.$input.after(this.$el);\n            _.each(options.menu.datasets, _.bind(function(dataset) {\n                if (dataset.onSync) {\n                    dataset.onSync(\"rendered\", _.bind(this.update, this));\n                    dataset.onSync(\"cleared\", _.bind(this.cleared, this));\n                }\n            }, this));\n        }\n        _.mixin(Status.prototype, {\n            update: function update(event, suggestions) {\n                var length = suggestions.length;\n                var words;\n                if (length === 1) {\n                    words = {\n                        result: \"result\",\n                        is: \"is\"\n                    };\n                } else {\n                    words = {\n                        result: \"results\",\n                        is: \"are\"\n                    };\n                }\n                this.$el.text(length + \" \" + words.result + \" \" + words.is + \" available, use up and down arrow keys to navigate.\");\n            },\n            cleared: function() {\n                this.$el.text(\"\");\n            }\n        });\n        return Status;\n    }();\n    var DefaultMenu = function() {\n        \"use strict\";\n        var s = Menu.prototype;\n        function DefaultMenu() {\n            Menu.apply(this, [].slice.call(arguments, 0));\n        }\n        _.mixin(DefaultMenu.prototype, Menu.prototype, {\n            open: function open() {\n                !this._allDatasetsEmpty() && this._show();\n                return s.open.apply(this, [].slice.call(arguments, 0));\n            },\n            close: function close() {\n                this._hide();\n                return s.close.apply(this, [].slice.call(arguments, 0));\n            },\n            _onRendered: function onRendered() {\n                if (this._allDatasetsEmpty()) {\n                    this._hide();\n                } else {\n                    this.isOpen() && this._show();\n                }\n                return s._onRendered.apply(this, [].slice.call(arguments, 0));\n            },\n            _onCleared: function onCleared() {\n                if (this._allDatasetsEmpty()) {\n                    this._hide();\n                } else {\n                    this.isOpen() && this._show();\n                }\n                return s._onCleared.apply(this, [].slice.call(arguments, 0));\n            },\n            setLanguageDirection: function setLanguageDirection(dir) {\n                this.$node.css(dir === \"ltr\" ? this.css.ltr : this.css.rtl);\n                return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0));\n            },\n            _hide: function hide() {\n                this.$node.hide();\n            },\n            _show: function show() {\n                this.$node.css(\"display\", \"block\");\n            }\n        });\n        return DefaultMenu;\n    }();\n    var Typeahead = function() {\n        \"use strict\";\n        function Typeahead(o, www) {\n            var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged;\n            o = o || {};\n            if (!o.input) {\n                $.error(\"missing input\");\n            }\n            if (!o.menu) {\n                $.error(\"missing menu\");\n            }\n            if (!o.eventBus) {\n                $.error(\"missing event bus\");\n            }\n            www.mixin(this);\n            this.eventBus = o.eventBus;\n            this.minLength = _.isNumber(o.minLength) ? o.minLength : 1;\n            this.input = o.input;\n            this.menu = o.menu;\n            this.enabled = true;\n            this.autoselect = !!o.autoselect;\n            this.active = false;\n            this.input.hasFocus() && this.activate();\n            this.dir = this.input.getLangDir();\n            this._hacks();\n            this.menu.bind().onSync(\"selectableClicked\", this._onSelectableClicked, this).onSync(\"asyncRequested\", this._onAsyncRequested, this).onSync(\"asyncCanceled\", this._onAsyncCanceled, this).onSync(\"asyncReceived\", this._onAsyncReceived, this).onSync(\"datasetRendered\", this._onDatasetRendered, this).onSync(\"datasetCleared\", this._onDatasetCleared, this);\n            onFocused = c(this, \"activate\", \"open\", \"_onFocused\");\n            onBlurred = c(this, \"deactivate\", \"_onBlurred\");\n            onEnterKeyed = c(this, \"isActive\", \"isOpen\", \"_onEnterKeyed\");\n            onTabKeyed = c(this, \"isActive\", \"isOpen\", \"_onTabKeyed\");\n            onEscKeyed = c(this, \"isActive\", \"_onEscKeyed\");\n            onUpKeyed = c(this, \"isActive\", \"open\", \"_onUpKeyed\");\n            onDownKeyed = c(this, \"isActive\", \"open\", \"_onDownKeyed\");\n            onLeftKeyed = c(this, \"isActive\", \"isOpen\", \"_onLeftKeyed\");\n            onRightKeyed = c(this, \"isActive\", \"isOpen\", \"_onRightKeyed\");\n            onQueryChanged = c(this, \"_openIfActive\", \"_onQueryChanged\");\n            onWhitespaceChanged = c(this, \"_openIfActive\", \"_onWhitespaceChanged\");\n            this.input.bind().onSync(\"focused\", onFocused, this).onSync(\"blurred\", onBlurred, this).onSync(\"enterKeyed\", onEnterKeyed, this).onSync(\"tabKeyed\", onTabKeyed, this).onSync(\"escKeyed\", onEscKeyed, this).onSync(\"upKeyed\", onUpKeyed, this).onSync(\"downKeyed\", onDownKeyed, this).onSync(\"leftKeyed\", onLeftKeyed, this).onSync(\"rightKeyed\", onRightKeyed, this).onSync(\"queryChanged\", onQueryChanged, this).onSync(\"whitespaceChanged\", onWhitespaceChanged, this).onSync(\"langDirChanged\", this._onLangDirChanged, this);\n        }\n        _.mixin(Typeahead.prototype, {\n            _hacks: function hacks() {\n                var $input, $menu;\n                $input = this.input.$input || $(\"<div>\");\n                $menu = this.menu.$node || $(\"<div>\");\n                $input.on(\"blur.tt\", function($e) {\n                    var active, isActive, hasActive;\n                    active = document.activeElement;\n                    isActive = $menu.is(active);\n                    hasActive = $menu.has(active).length > 0;\n                    if (_.isMsie() && (isActive || hasActive)) {\n                        $e.preventDefault();\n                        $e.stopImmediatePropagation();\n                        _.defer(function() {\n                            $input.focus();\n                        });\n                    }\n                });\n                $menu.on(\"mousedown.tt\", function($e) {\n                    $e.preventDefault();\n                });\n            },\n            _onSelectableClicked: function onSelectableClicked(type, $el) {\n                this.select($el);\n            },\n            _onDatasetCleared: function onDatasetCleared() {\n                this._updateHint();\n            },\n            _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) {\n                this._updateHint();\n                if (this.autoselect) {\n                    var cursorClass = this.selectors.cursor.substr(1);\n                    this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass);\n                }\n                this.eventBus.trigger(\"render\", suggestions, async, dataset);\n            },\n            _onAsyncRequested: function onAsyncRequested(type, dataset, query) {\n                this.eventBus.trigger(\"asyncrequest\", query, dataset);\n            },\n            _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) {\n                this.eventBus.trigger(\"asynccancel\", query, dataset);\n            },\n            _onAsyncReceived: function onAsyncReceived(type, dataset, query) {\n                this.eventBus.trigger(\"asyncreceive\", query, dataset);\n            },\n            _onFocused: function onFocused() {\n                this._minLengthMet() && this.menu.update(this.input.getQuery());\n            },\n            _onBlurred: function onBlurred() {\n                if (this.input.hasQueryChangedSinceLastFocus()) {\n                    this.eventBus.trigger(\"change\", this.input.getQuery());\n                }\n            },\n            _onEnterKeyed: function onEnterKeyed(type, $e) {\n                var $selectable;\n                if ($selectable = this.menu.getActiveSelectable()) {\n                    if (this.select($selectable)) {\n                        $e.preventDefault();\n                        $e.stopPropagation();\n                    }\n                } else if (this.autoselect) {\n                    if (this.select(this.menu.getTopSelectable())) {\n                        $e.preventDefault();\n                        $e.stopPropagation();\n                    }\n                }\n            },\n            _onTabKeyed: function onTabKeyed(type, $e) {\n                var $selectable;\n                if ($selectable = this.menu.getActiveSelectable()) {\n                    this.select($selectable) && $e.preventDefault();\n                } else if (this.autoselect) {\n                    if ($selectable = this.menu.getTopSelectable()) {\n                        this.autocomplete($selectable) && $e.preventDefault();\n                    }\n                }\n            },\n            _onEscKeyed: function onEscKeyed() {\n                this.close();\n            },\n            _onUpKeyed: function onUpKeyed() {\n                this.moveCursor(-1);\n            },\n            _onDownKeyed: function onDownKeyed() {\n                this.moveCursor(+1);\n            },\n            _onLeftKeyed: function onLeftKeyed() {\n                if (this.dir === \"rtl\" && this.input.isCursorAtEnd()) {\n                    this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable());\n                }\n            },\n            _onRightKeyed: function onRightKeyed() {\n                if (this.dir === \"ltr\" && this.input.isCursorAtEnd()) {\n                    this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable());\n                }\n            },\n            _onQueryChanged: function onQueryChanged(e, query) {\n                this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty();\n            },\n            _onWhitespaceChanged: function onWhitespaceChanged() {\n                this._updateHint();\n            },\n            _onLangDirChanged: function onLangDirChanged(e, dir) {\n                if (this.dir !== dir) {\n                    this.dir = dir;\n                    this.menu.setLanguageDirection(dir);\n                }\n            },\n            _openIfActive: function openIfActive() {\n                this.isActive() && this.open();\n            },\n            _minLengthMet: function minLengthMet(query) {\n                query = _.isString(query) ? query : this.input.getQuery() || \"\";\n                return query.length >= this.minLength;\n            },\n            _updateHint: function updateHint() {\n                var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match;\n                $selectable = this.menu.getTopSelectable();\n                data = this.menu.getSelectableData($selectable);\n                val = this.input.getInputValue();\n                if (data && !_.isBlankString(val) && !this.input.hasOverflow()) {\n                    query = Input.normalizeQuery(val);\n                    escapedQuery = _.escapeRegExChars(query);\n                    frontMatchRegEx = new RegExp(\"^(?:\" + escapedQuery + \")(.+$)\", \"i\");\n                    match = frontMatchRegEx.exec(data.val);\n                    match && this.input.setHint(val + match[1]);\n                } else {\n                    this.input.clearHint();\n                }\n            },\n            isEnabled: function isEnabled() {\n                return this.enabled;\n            },\n            enable: function enable() {\n                this.enabled = true;\n            },\n            disable: function disable() {\n                this.enabled = false;\n            },\n            isActive: function isActive() {\n                return this.active;\n            },\n            activate: function activate() {\n                if (this.isActive()) {\n                    return true;\n                } else if (!this.isEnabled() || this.eventBus.before(\"active\")) {\n                    return false;\n                } else {\n                    this.active = true;\n                    this.eventBus.trigger(\"active\");\n                    return true;\n                }\n            },\n            deactivate: function deactivate() {\n                if (!this.isActive()) {\n                    return true;\n                } else if (this.eventBus.before(\"idle\")) {\n                    return false;\n                } else {\n                    this.active = false;\n                    this.close();\n                    this.eventBus.trigger(\"idle\");\n                    return true;\n                }\n            },\n            isOpen: function isOpen() {\n                return this.menu.isOpen();\n            },\n            open: function open() {\n                if (!this.isOpen() && !this.eventBus.before(\"open\")) {\n                    this.input.setAriaExpanded(true);\n                    this.menu.open();\n                    this._updateHint();\n                    this.eventBus.trigger(\"open\");\n                }\n                return this.isOpen();\n            },\n            close: function close() {\n                if (this.isOpen() && !this.eventBus.before(\"close\")) {\n                    this.input.setAriaExpanded(false);\n                    this.menu.close();\n                    this.input.clearHint();\n                    this.input.resetInputValue();\n                    this.eventBus.trigger(\"close\");\n                }\n                return !this.isOpen();\n            },\n            setVal: function setVal(val) {\n                this.input.setQuery(_.toStr(val));\n            },\n            getVal: function getVal() {\n                return this.input.getQuery();\n            },\n            select: function select($selectable) {\n                var data = this.menu.getSelectableData($selectable);\n                if (data && !this.eventBus.before(\"select\", data.obj, data.dataset)) {\n                    this.input.setQuery(data.val, true);\n                    this.eventBus.trigger(\"select\", data.obj, data.dataset);\n                    this.close();\n                    return true;\n                }\n                return false;\n            },\n            autocomplete: function autocomplete($selectable) {\n                var query, data, isValid;\n                query = this.input.getQuery();\n                data = this.menu.getSelectableData($selectable);\n                isValid = data && query !== data.val;\n                if (isValid && !this.eventBus.before(\"autocomplete\", data.obj, data.dataset)) {\n                    this.input.setQuery(data.val);\n                    this.eventBus.trigger(\"autocomplete\", data.obj, data.dataset);\n                    return true;\n                }\n                return false;\n            },\n            moveCursor: function moveCursor(delta) {\n                var query, $candidate, data, suggestion, datasetName, cancelMove, id;\n                query = this.input.getQuery();\n                $candidate = this.menu.selectableRelativeToCursor(delta);\n                data = this.menu.getSelectableData($candidate);\n                suggestion = data ? data.obj : null;\n                datasetName = data ? data.dataset : null;\n                id = $candidate ? $candidate.attr(\"id\") : null;\n                this.input.trigger(\"cursorchange\", id);\n                cancelMove = this._minLengthMet() && this.menu.update(query);\n                if (!cancelMove && !this.eventBus.before(\"cursorchange\", suggestion, datasetName)) {\n                    this.menu.setCursor($candidate);\n                    if (data) {\n                        if (typeof data.val === \"string\") {\n                            this.input.setInputValue(data.val);\n                        }\n                    } else {\n                        this.input.resetInputValue();\n                        this._updateHint();\n                    }\n                    this.eventBus.trigger(\"cursorchange\", suggestion, datasetName);\n                    return true;\n                }\n                return false;\n            },\n            destroy: function destroy() {\n                this.input.destroy();\n                this.menu.destroy();\n            }\n        });\n        return Typeahead;\n        function c(ctx) {\n            var methods = [].slice.call(arguments, 1);\n            return function() {\n                var args = [].slice.call(arguments);\n                _.each(methods, function(method) {\n                    return ctx[method].apply(ctx, args);\n                });\n            };\n        }\n    }();\n    (function() {\n        \"use strict\";\n        var old, keys, methods;\n        old = $.fn.typeahead;\n        keys = {\n            www: \"tt-www\",\n            attrs: \"tt-attrs\",\n            typeahead: \"tt-typeahead\"\n        };\n        methods = {\n            initialize: function initialize(o, datasets) {\n                var www;\n                datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1);\n                o = o || {};\n                www = WWW(o.classNames);\n                return this.each(attach);\n                function attach() {\n                    var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor;\n                    _.each(datasets, function(d) {\n                        d.highlight = !!o.highlight;\n                    });\n                    $input = $(this);\n                    $wrapper = $(www.html.wrapper);\n                    $hint = $elOrNull(o.hint);\n                    $menu = $elOrNull(o.menu);\n                    defaultHint = o.hint !== false && !$hint;\n                    defaultMenu = o.menu !== false && !$menu;\n                    defaultHint && ($hint = buildHintFromInput($input, www));\n                    defaultMenu && ($menu = $(www.html.menu).css(www.css.menu));\n                    $hint && $hint.val(\"\");\n                    $input = prepInput($input, www);\n                    if (defaultHint || defaultMenu) {\n                        $wrapper.css(www.css.wrapper);\n                        $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint);\n                        $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null);\n                    }\n                    MenuConstructor = defaultMenu ? DefaultMenu : Menu;\n                    eventBus = new EventBus({\n                        el: $input\n                    });\n                    input = new Input({\n                        hint: $hint,\n                        input: $input,\n                        menu: $menu\n                    }, www);\n                    menu = new MenuConstructor({\n                        node: $menu,\n                        datasets: datasets\n                    }, www);\n                    status = new Status({\n                        $input: $input,\n                        menu: menu\n                    });\n                    typeahead = new Typeahead({\n                        input: input,\n                        menu: menu,\n                        eventBus: eventBus,\n                        minLength: o.minLength,\n                        autoselect: o.autoselect\n                    }, www);\n                    $input.data(keys.www, www);\n                    $input.data(keys.typeahead, typeahead);\n                }\n            },\n            isEnabled: function isEnabled() {\n                var enabled;\n                ttEach(this.first(), function(t) {\n                    enabled = t.isEnabled();\n                });\n                return enabled;\n            },\n            enable: function enable() {\n                ttEach(this, function(t) {\n                    t.enable();\n                });\n                return this;\n            },\n            disable: function disable() {\n                ttEach(this, function(t) {\n                    t.disable();\n                });\n                return this;\n            },\n            isActive: function isActive() {\n                var active;\n                ttEach(this.first(), function(t) {\n                    active = t.isActive();\n                });\n                return active;\n            },\n            activate: function activate() {\n                ttEach(this, function(t) {\n                    t.activate();\n                });\n                return this;\n            },\n            deactivate: function deactivate() {\n                ttEach(this, function(t) {\n                    t.deactivate();\n                });\n                return this;\n            },\n            isOpen: function isOpen() {\n                var open;\n                ttEach(this.first(), function(t) {\n                    open = t.isOpen();\n                });\n                return open;\n            },\n            open: function open() {\n                ttEach(this, function(t) {\n                    t.open();\n                });\n                return this;\n            },\n            close: function close() {\n                ttEach(this, function(t) {\n                    t.close();\n                });\n                return this;\n            },\n            select: function select(el) {\n                var success = false, $el = $(el);\n                ttEach(this.first(), function(t) {\n                    success = t.select($el);\n                });\n                return success;\n            },\n            autocomplete: function autocomplete(el) {\n                var success = false, $el = $(el);\n                ttEach(this.first(), function(t) {\n                    success = t.autocomplete($el);\n                });\n                return success;\n            },\n            moveCursor: function moveCursoe(delta) {\n                var success = false;\n                ttEach(this.first(), function(t) {\n                    success = t.moveCursor(delta);\n                });\n                return success;\n            },\n            val: function val(newVal) {\n                var query;\n                if (!arguments.length) {\n                    ttEach(this.first(), function(t) {\n                        query = t.getVal();\n                    });\n                    return query;\n                } else {\n                    ttEach(this, function(t) {\n                        t.setVal(_.toStr(newVal));\n                    });\n                    return this;\n                }\n            },\n            destroy: function destroy() {\n                ttEach(this, function(typeahead, $input) {\n                    revert($input);\n                    typeahead.destroy();\n                });\n                return this;\n            }\n        };\n        $.fn.typeahead = function(method) {\n            if (methods[method]) {\n                return methods[method].apply(this, [].slice.call(arguments, 1));\n            } else {\n                return methods.initialize.apply(this, arguments);\n            }\n        };\n        $.fn.typeahead.noConflict = function noConflict() {\n            $.fn.typeahead = old;\n            return this;\n        };\n        function ttEach($els, fn) {\n            $els.each(function() {\n                var $input = $(this), typeahead;\n                (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input);\n            });\n        }\n        function buildHintFromInput($input, www) {\n            return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({\n                readonly: true,\n                required: false\n            }).removeAttr(\"id name placeholder\").removeClass(\"required\").attr({\n                spellcheck: \"false\",\n                tabindex: -1\n            });\n        }\n        function prepInput($input, www) {\n            $input.data(keys.attrs, {\n                dir: $input.attr(\"dir\"),\n                autocomplete: $input.attr(\"autocomplete\"),\n                spellcheck: $input.attr(\"spellcheck\"),\n                style: $input.attr(\"style\")\n            });\n            $input.addClass(www.classes.input).attr({\n                spellcheck: false\n            });\n            try {\n                !$input.attr(\"dir\") && $input.attr(\"dir\", \"auto\");\n            } catch (e) {}\n            return $input;\n        }\n        function getBackgroundStyles($el) {\n            return {\n                backgroundAttachment: $el.css(\"background-attachment\"),\n                backgroundClip: $el.css(\"background-clip\"),\n                backgroundColor: $el.css(\"background-color\"),\n                backgroundImage: $el.css(\"background-image\"),\n                backgroundOrigin: $el.css(\"background-origin\"),\n                backgroundPosition: $el.css(\"background-position\"),\n                backgroundRepeat: $el.css(\"background-repeat\"),\n                backgroundSize: $el.css(\"background-size\")\n            };\n        }\n        function revert($input) {\n            var www, $wrapper;\n            www = $input.data(keys.www);\n            $wrapper = $input.parent().filter(www.selectors.wrapper);\n            _.each($input.data(keys.attrs), function(val, key) {\n                _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val);\n            });\n            $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input);\n            if ($wrapper.length) {\n                $input.detach().insertAfter($wrapper);\n                $wrapper.remove();\n            }\n        }\n        function $elOrNull(obj) {\n            var isValid, $el;\n            isValid = _.isJQuery(obj) || _.isElement(obj);\n            $el = isValid ? $(obj).first() : [];\n            return $el.length ? $el : null;\n        }\n    })();\n});"
  },
  {
    "path": "docs/search.json",
    "content": "{\"Typealiases.html#/s:8SocketIO11AckCallbacka\":{\"name\":\"AckCallback\",\"abstract\":\"<p>A typealias for an ack callback.</p>\"},\"Typealiases.html#/s:8SocketIO14NormalCallbacka\":{\"name\":\"NormalCallback\",\"abstract\":\"<p>A typealias for a normal callback.</p>\"},\"Typealiases.html#/s:8SocketIO4Posta\":{\"name\":\"Post\",\"abstract\":\"<p>A typealias for a queued POST</p>\"},\"Structs/SocketPacket/PacketType.html#/s:8SocketIO0A6PacketV0C4TypeO7connectyA2EmF\":{\"name\":\"connect\",\"abstract\":\"<p>Connect: 0</p>\",\"parent_name\":\"PacketType\"},\"Structs/SocketPacket/PacketType.html#/s:8SocketIO0A6PacketV0C4TypeO10disconnectyA2EmF\":{\"name\":\"disconnect\",\"abstract\":\"<p>Disconnect: 1</p>\",\"parent_name\":\"PacketType\"},\"Structs/SocketPacket/PacketType.html#/s:8SocketIO0A6PacketV0C4TypeO5eventyA2EmF\":{\"name\":\"event\",\"abstract\":\"<p>Event: 2</p>\",\"parent_name\":\"PacketType\"},\"Structs/SocketPacket/PacketType.html#/s:8SocketIO0A6PacketV0C4TypeO3ackyA2EmF\":{\"name\":\"ack\",\"abstract\":\"<p>Ack: 3</p>\",\"parent_name\":\"PacketType\"},\"Structs/SocketPacket/PacketType.html#/s:8SocketIO0A6PacketV0C4TypeO5erroryA2EmF\":{\"name\":\"error\",\"abstract\":\"<p>Error: 4</p>\",\"parent_name\":\"PacketType\"},\"Structs/SocketPacket/PacketType.html#/s:8SocketIO0A6PacketV0C4TypeO11binaryEventyA2EmF\":{\"name\":\"binaryEvent\",\"abstract\":\"<p>Binary Event: 5</p>\",\"parent_name\":\"PacketType\"},\"Structs/SocketPacket/PacketType.html#/s:8SocketIO0A6PacketV0C4TypeO9binaryAckyA2EmF\":{\"name\":\"binaryAck\",\"abstract\":\"<p>Binary Ack: 6</p>\",\"parent_name\":\"PacketType\"},\"Structs/SocketPacket/PacketType.html#/s:8SocketIO0A6PacketV0C4TypeO8isBinarySbvp\":{\"name\":\"isBinary\",\"abstract\":\"<p>Whether or not this type is binary</p>\",\"parent_name\":\"PacketType\"},\"Structs/SocketPacket.html#/s:8SocketIO0A6PacketV3nspSSvp\":{\"name\":\"nsp\",\"abstract\":\"<p>The namespace for this packet.</p>\",\"parent_name\":\"SocketPacket\"},\"Structs/SocketPacket.html#/s:8SocketIO0A6PacketV2idSivp\":{\"name\":\"id\",\"abstract\":\"<p>If &gt; 0 then this packet is using acking.</p>\",\"parent_name\":\"SocketPacket\"},\"Structs/SocketPacket.html#/s:8SocketIO0A6PacketV4typeAC0C4TypeOvp\":{\"name\":\"type\",\"abstract\":\"<p>The type of this packet.</p>\",\"parent_name\":\"SocketPacket\"},\"Structs/SocketPacket.html#/s:8SocketIO0A6PacketV6binarySay10Foundation4DataVGvp\":{\"name\":\"binary\",\"abstract\":\"<p>An array of binary data for this packet.</p>\",\"parent_name\":\"SocketPacket\"},\"Structs/SocketPacket.html#/s:8SocketIO0A6PacketV4dataSayypGvp\":{\"name\":\"data\",\"abstract\":\"<p>The data for this event.</p>\",\"parent_name\":\"SocketPacket\"},\"Structs/SocketPacket.html#/s:8SocketIO0A6PacketV4argsSayypGvp\":{\"name\":\"args\",\"abstract\":\"<p>Returns the payload for this packet, minus the event name if this is an event or binaryEvent type packet.</p>\",\"parent_name\":\"SocketPacket\"},\"Structs/SocketPacket.html#/s:8SocketIO0A6PacketV11descriptionSSvp\":{\"name\":\"description\",\"abstract\":\"<p>A string representation of this packet.</p>\",\"parent_name\":\"SocketPacket\"},\"Structs/SocketPacket.html#/s:8SocketIO0A6PacketV5eventSSvp\":{\"name\":\"event\",\"abstract\":\"<p>The event name for this packet.</p>\",\"parent_name\":\"SocketPacket\"},\"Structs/SocketPacket.html#/s:8SocketIO0A6PacketV12packetStringSSvp\":{\"name\":\"packetString\",\"abstract\":\"<p>A string representation of this packet.</p>\",\"parent_name\":\"SocketPacket\"},\"Structs/SocketPacket/PacketType.html\":{\"name\":\"PacketType\",\"abstract\":\"<p>The type of packets.</p>\",\"parent_name\":\"SocketPacket\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV7Elementa\":{\"name\":\"Element\",\"abstract\":\"<p>Type of element stored.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5Indexa\":{\"name\":\"Index\",\"abstract\":\"<p>Index type.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV8Iteratora\":{\"name\":\"Iterator\",\"abstract\":\"<p>Iterator type.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV11SubSequencea\":{\"name\":\"SubSequence\",\"abstract\":\"<p>SubSequence type.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV10startIndexSivp\":{\"name\":\"startIndex\",\"abstract\":\"<p>The start index of this collection.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV8endIndexSivp\":{\"name\":\"endIndex\",\"abstract\":\"<p>The end index of this collection.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV7isEmptySbvp\":{\"name\":\"isEmpty\",\"abstract\":\"<p>Whether this collection is empty.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5countSivp\":{\"name\":\"count\",\"abstract\":\"<p>The number of elements stored in this collection.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5firstAA0aC6OptionOSgvp\":{\"name\":\"first\",\"abstract\":\"<p>The first element in this collection.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:Sly7ElementQz5IndexQzcip\":{\"name\":\"subscript(_:)\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:Sly11SubSequenceQzSny5IndexQzGcip\":{\"name\":\"subscript(_:)\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV12arrayLiteralAcA0aC6OptionOd_tcfc\":{\"name\":\"init(arrayLiteral:)\",\"abstract\":\"<p>Creates a new <code>SocketIOClientConfiguration</code> from an array literal.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV12makeIterators08IndexingF0VySayAA0aC6OptionOGGyF\":{\"name\":\"makeIterator()\",\"abstract\":\"<p>Creates an iterator for this collection.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV5index5afterS2i_tF\":{\"name\":\"index(after:)\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketIOClientConfiguration.html#/s:8SocketIO0A21IOClientConfigurationV6insert_9replacingyAA0aC6OptionO_SbtF\":{\"name\":\"insert(_:replacing:)\",\"abstract\":\"<p>Special method that inserts <code>element</code> into the collection, replacing any other instances of <code>element</code>.</p>\",\"parent_name\":\"SocketIOClientConfiguration\"},\"Structs/SocketEventHandler.html#/s:8SocketIO0A12EventHandlerV5eventSSvp\":{\"name\":\"event\",\"abstract\":\"<p>The event for this handler.</p>\",\"parent_name\":\"SocketEventHandler\"},\"Structs/SocketEventHandler.html#/s:8SocketIO0A12EventHandlerV2id10Foundation4UUIDVvp\":{\"name\":\"id\",\"abstract\":\"<p>A unique identifier for this handler.</p>\",\"parent_name\":\"SocketEventHandler\"},\"Structs/SocketEventHandler.html#/s:8SocketIO0A12EventHandlerV8callbackyySayypG_AA0A10AckEmitterCtcvp\":{\"name\":\"callback\",\"abstract\":\"<p>The actual handler function.</p>\",\"parent_name\":\"SocketEventHandler\"},\"Structs/SocketEventHandler.html#/s:8SocketIO0A12EventHandlerV15executeCallback4with0G3Ack0gA0ySayypG_SiAA0A8IOClientCtF\":{\"name\":\"executeCallback(with:withAck:withSocket:)\",\"abstract\":\"<p>Causes this handler to be executed.</p>\",\"parent_name\":\"SocketEventHandler\"},\"Structs/SocketEventHandler.html\":{\"name\":\"SocketEventHandler\",\"abstract\":\"<p>A wrapper around a handler.</p>\"},\"Structs/SocketIOClientConfiguration.html\":{\"name\":\"SocketIOClientConfiguration\",\"abstract\":\"<p>An array-like type that holds <code><a href=\\\"36f8f5912051ae747ef441d6511ca4cbEnums/SocketIOClientOption.html\\\">SocketIOClientOption</a></code>s</p>\"},\"Structs/SocketPacket.html\":{\"name\":\"SocketPacket\",\"abstract\":\"<p>A struct that represents a socket.io packet.</p>\"},\"Protocols/SocketData.html#/s:8SocketIO0A4DataP20socketRepresentationAaB_pyKF\":{\"name\":\"socketRepresentation()\",\"abstract\":\"<p>A representation of self that can sent over socket.io.</p>\",\"parent_name\":\"SocketData\"},\"Protocols/SocketLogger.html#/s:8SocketIO0A6LoggerP3logSbvp\":{\"name\":\"log\",\"abstract\":\"<p>Whether to log or not</p>\",\"parent_name\":\"SocketLogger\"},\"Protocols/SocketLogger.html#/s:8SocketIO0A6LoggerP3log_4typeySSyXK_SStF\":{\"name\":\"log(_:type:)\",\"abstract\":\"<p>Normal log messages</p>\",\"parent_name\":\"SocketLogger\"},\"Protocols/SocketLogger.html#/s:8SocketIO0A6LoggerP5error_4typeySSyXK_SStF\":{\"name\":\"error(_:type:)\",\"abstract\":\"<p>Error Messages</p>\",\"parent_name\":\"SocketLogger\"},\"Protocols/SocketDataBufferable.html#/s:8SocketIO0A14DataBufferableP14waitingPacketsSayAA0A6PacketVGvp\":{\"name\":\"waitingPackets\",\"abstract\":\"<p>A list of packets that are waiting for binary data.</p>\",\"parent_name\":\"SocketDataBufferable\"},\"Protocols/SocketParsable.html#/s:8SocketIO0A8ParsableP15parseBinaryDatayAA0A6PacketVSg10Foundation0F0VF\":{\"name\":\"parseBinaryData(_:)\",\"abstract\":\"<p>Called when the engine has received some binary data that should be attached to a packet.</p>\",\"parent_name\":\"SocketParsable\"},\"Protocols/SocketParsable.html#/s:8SocketIO0A8ParsableP05parseA7MessageyAA0A6PacketVSgSSF\":{\"name\":\"parseSocketMessage(_:)\",\"abstract\":\"<p>Called when the engine has received a string that should be parsed into a socket.io packet.</p>\",\"parent_name\":\"SocketParsable\"},\"Protocols/SocketParsable.html#/s:8SocketIO0A8ParsablePA2A0A14DataBufferableRzAA0A11ManagerSpecRzrlE05parseA7MessageyAA0A6PacketVSgSSF\":{\"name\":\"parseSocketMessage(_:)\",\"parent_name\":\"SocketParsable\"},\"Protocols/SocketParsable.html#/s:8SocketIO0A8ParsablePA2A0A14DataBufferableRzAA0A11ManagerSpecRzrlE011parseBinaryD0yAA0A6PacketVSg10Foundation0D0VF\":{\"name\":\"parseBinaryData(_:)\",\"parent_name\":\"SocketParsable\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP07defaultA0AA0A8IOClientCvp\":{\"name\":\"defaultSocket\",\"abstract\":\"<p>Returns the socket associated with the default namespace (&ldquo;/&rdquo;).</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP6engineAA0a6EngineD0_pSgvp\":{\"name\":\"engine\",\"abstract\":\"<p>The engine for this manager.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP8forceNewSbvp\":{\"name\":\"forceNew\",\"abstract\":\"<p>If <code>true</code> then every time <code>connect</code> is called, a new engine will be created.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP11handleQueueSo17OS_dispatch_queueCvp\":{\"name\":\"handleQueue\",\"abstract\":\"<p>The queue that all interaction with the client should occur on. This is the queue that event handlers are\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP4nspsSDySSAA0A8IOClientCGvp\":{\"name\":\"nsps\",\"abstract\":\"<p>The sockets in this manager indexed by namespace.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP10reconnectsSbvp\":{\"name\":\"reconnects\",\"abstract\":\"<p>If <code>true</code>, this manager will try and reconnect on any disconnects.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP13reconnectWaitSivp\":{\"name\":\"reconnectWait\",\"abstract\":\"<p>The minimum number of seconds to wait before attempting to reconnect.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP16reconnectWaitMaxSivp\":{\"name\":\"reconnectWaitMax\",\"abstract\":\"<p>The maximum number of seconds to wait before attempting to reconnect.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP19randomizationFactorSdvp\":{\"name\":\"randomizationFactor\",\"abstract\":\"<p>The randomization factor for calculating reconnect jitter.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP9socketURL10Foundation0F0Vvp\":{\"name\":\"socketURL\",\"abstract\":\"<p>The URL of the socket.io server.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP6statusAA0A8IOStatusOvp\":{\"name\":\"status\",\"abstract\":\"<p>The status of this manager.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP7versionAA0A9IOVersionOvp\":{\"name\":\"version\",\"abstract\":\"<p>The version of socket.io in use.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP7connectyyF\":{\"name\":\"connect()\",\"abstract\":\"<p>Connects the underlying transport.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP07connectA0_11withPayloadyAA0A8IOClientC_SDySSypGSgtF\":{\"name\":\"connectSocket(_:withPayload:)\",\"abstract\":\"<p>Connects a socket through this manager&rsquo;s engine.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP13didDisconnect6reasonySS_tF\":{\"name\":\"didDisconnect(reason:)\",\"abstract\":\"<p>Called when the manager has disconnected from socket.io.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP10disconnectyyF\":{\"name\":\"disconnect()\",\"abstract\":\"<p>Disconnects the manager and all associated sockets.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP010disconnectA0yyAA0A8IOClientCF\":{\"name\":\"disconnectSocket(_:)\",\"abstract\":\"<p>Disconnects the given socket.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP010disconnectA012forNamespaceySS_tF\":{\"name\":\"disconnectSocket(forNamespace:)\",\"abstract\":\"<p>Disconnects the socket associated with <code>forNamespace</code>.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP7emitAllyySS_AA0A4Data_pdtF\":{\"name\":\"emitAll(_:_:)\",\"abstract\":\"<p>Sends an event to the server on all namespaces in this manager.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP9reconnectyyF\":{\"name\":\"reconnect()\",\"abstract\":\"<p>Tries to reconnect to the server.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP06removeA0yAA0A8IOClientCSgAFF\":{\"name\":\"removeSocket(_:)\",\"abstract\":\"<p>Removes the socket from the manager&rsquo;s control.\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketManagerSpec.html#/s:8SocketIO0A11ManagerSpecP6socket12forNamespaceAA0A8IOClientCSS_tF\":{\"name\":\"socket(forNamespace:)\",\"abstract\":\"<p>Returns a <code><a href=\\\"36f8f5912051ae747ef441d6511ca4cbClasses/SocketIOClient.html\\\">SocketIOClient</a></code> for the given namespace. This socket shares a transport with the manager.</p>\",\"parent_name\":\"SocketManagerSpec\"},\"Protocols/SocketEngineWebsocket.html#/s:8SocketIO0A15EngineWebsocketP11wsConnectedSbvp\":{\"name\":\"wsConnected\",\"abstract\":\"<p>Whether or not the ws is connected</p>\",\"parent_name\":\"SocketEngineWebsocket\"},\"Protocols/SocketEngineWebsocket.html#/s:8SocketIO0A15EngineWebsocketP07sendWebA7Message_8withType0H4Data10completionySS_AA0ac6PacketI0OSay10Foundation0J0VGyycSgtF\":{\"name\":\"sendWebSocketMessage(_:withType:withData:completion:)\",\"abstract\":\"<p>Sends an engine.io message through the WebSocket transport.</p>\",\"parent_name\":\"SocketEngineWebsocket\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP6clientAA0aC6Client_pSgvp\":{\"name\":\"client\",\"abstract\":\"<p>The client for this engine.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP6closedSbvp\":{\"name\":\"closed\",\"abstract\":\"<p><code>true</code> if this engine is closed.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP8compressSbvp\":{\"name\":\"compress\",\"abstract\":\"<p>If <code>true</code> the engine will attempt to use WebSocket compression.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP9connectedSbvp\":{\"name\":\"connected\",\"abstract\":\"<p><code>true</code> if this engine is connected. Connected means that the initial poll connect has succeeded.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP13connectParamsSDySSypGSgvp\":{\"name\":\"connectParams\",\"abstract\":\"<p>The connect parameters sent during a connect.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP7cookiesSaySo12NSHTTPCookieCGSgvp\":{\"name\":\"cookies\",\"abstract\":\"<p>An array of HTTPCookies that are sent during the connection.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP11engineQueueSo17OS_dispatch_queueCvp\":{\"name\":\"engineQueue\",\"abstract\":\"<p>The queue that all engine actions take place on.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP12extraHeadersSDyS2SGSgvp\":{\"name\":\"extraHeaders\",\"abstract\":\"<p>A dictionary of extra http headers that will be set during connection.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP11fastUpgradeSbvp\":{\"name\":\"fastUpgrade\",\"abstract\":\"<p>When <code>true</code>, the engine is in the process of switching to WebSockets.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP12forcePollingSbvp\":{\"name\":\"forcePolling\",\"abstract\":\"<p>When <code>true</code>, the engine will only use HTTP long-polling as a transport.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP15forceWebsocketsSbvp\":{\"name\":\"forceWebsockets\",\"abstract\":\"<p>When <code>true</code>, the engine will only use WebSockets as a transport.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP7pollingSbvp\":{\"name\":\"polling\",\"abstract\":\"<p>If <code>true</code>, the engine is currently in HTTP long-polling mode.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP7probingSbvp\":{\"name\":\"probing\",\"abstract\":\"<p>If <code>true</code>, the engine is currently seeing whether it can upgrade to WebSockets.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP3sidSSvp\":{\"name\":\"sid\",\"abstract\":\"<p>The session id for this engine.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP10socketPathSSvp\":{\"name\":\"socketPath\",\"abstract\":\"<p>The path to engine.io.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP10urlPolling10Foundation3URLVvp\":{\"name\":\"urlPolling\",\"abstract\":\"<p>The url for polling.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP06urlWebA010Foundation3URLVvp\":{\"name\":\"urlWebSocket\",\"abstract\":\"<p>The url for WebSockets.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP7versionAA0A9IOVersionOvp\":{\"name\":\"version\",\"abstract\":\"<p>The version of engine.io being used. Default is three.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP9websocketSbvp\":{\"name\":\"websocket\",\"abstract\":\"<p>If <code>true</code>, then the engine is currently in WebSockets mode.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP2ws10Starscream03WebA0CSgvp\":{\"name\":\"ws\",\"abstract\":\"<p>The WebSocket for this engine.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP6client3url7optionsxAA0aC6Client_p_10Foundation3URLVSDySSypGSgtcfc\":{\"name\":\"init(client:url:options:)\",\"abstract\":\"<p>Creates a new engine.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP7connectyyF\":{\"name\":\"connect()\",\"abstract\":\"<p>Starts the connection to the server.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP8didError6reasonySS_tF\":{\"name\":\"didError(reason:)\",\"abstract\":\"<p>Called when an error happens during execution. Causes a disconnection.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP10disconnect6reasonySS_tF\":{\"name\":\"disconnect(reason:)\",\"abstract\":\"<p>Disconnects from the server.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP13doFastUpgradeyyF\":{\"name\":\"doFastUpgrade()\",\"abstract\":\"<p>Called to switch from HTTP long-polling to WebSockets. After calling this method the engine will be in\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP024flushWaitingForPostToWebA0yyF\":{\"name\":\"flushWaitingForPostToWebSocket()\",\"abstract\":\"<p>Causes any packets that were waiting for POSTing to be sent through the WebSocket. This happens because when\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP05parseC4Datayy10Foundation0F0VF\":{\"name\":\"parseEngineData(_:)\",\"abstract\":\"<p>Parses raw binary received from engine.io.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP05parseC7MessageyySSF\":{\"name\":\"parseEngineMessage(_:)\",\"abstract\":\"<p>Parses a raw engine.io packet.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEngineSpec.html#/s:8SocketIO0A10EngineSpecP5write_8withType0F4Data10completionySS_AA0ac6PacketG0OSay10Foundation0H0VGyycSgtF\":{\"name\":\"write(_:withType:withData:completion:)\",\"abstract\":\"<p>Writes a message to engine.io, independent of transport.</p>\",\"parent_name\":\"SocketEngineSpec\"},\"Protocols/SocketEnginePollable.html#/s:8SocketIO0A14EnginePollableP11invalidatedSbvp\":{\"name\":\"invalidated\",\"abstract\":\"<p><code>true</code> If engine&rsquo;s session has been invalidated.</p>\",\"parent_name\":\"SocketEnginePollable\"},\"Protocols/SocketEnginePollable.html#/s:8SocketIO0A14EnginePollableP8postWaitSaySS3msg_yycSg10completiontGvp\":{\"name\":\"postWait\",\"abstract\":\"<p>A queue of engine.io messages waiting for POSTing</p>\",\"parent_name\":\"SocketEnginePollable\"},\"Protocols/SocketEnginePollable.html#/s:8SocketIO0A14EnginePollableP7sessionSo12NSURLSessionCSgvp\":{\"name\":\"session\",\"abstract\":\"<p>The URLSession that will be used for polling.</p>\",\"parent_name\":\"SocketEnginePollable\"},\"Protocols/SocketEnginePollable.html#/s:8SocketIO0A14EnginePollableP14waitingForPollSbvp\":{\"name\":\"waitingForPoll\",\"abstract\":\"<p><code>true</code> if there is an outstanding poll. Trying to poll before the first is done will cause socket.io to\",\"parent_name\":\"SocketEnginePollable\"},\"Protocols/SocketEnginePollable.html#/s:8SocketIO0A14EnginePollableP14waitingForPostSbvp\":{\"name\":\"waitingForPost\",\"abstract\":\"<p><code>true</code> if there is an outstanding post. Trying to post before the first is done will cause socket.io to\",\"parent_name\":\"SocketEnginePollable\"},\"Protocols/SocketEnginePollable.html#/s:8SocketIO0A14EnginePollableP6doPollyyF\":{\"name\":\"doPoll()\",\"abstract\":\"<p>Call to send a long-polling request.</p>\",\"parent_name\":\"SocketEnginePollable\"},\"Protocols/SocketEnginePollable.html#/s:8SocketIO0A14EnginePollableP15sendPollMessage_8withType0H4Data10completionySS_AA0ac6PacketI0OSay10Foundation0J0VGyycSgtF\":{\"name\":\"sendPollMessage(_:withType:withData:completion:)\",\"abstract\":\"<p>Sends an engine.io message through the polling transport.</p>\",\"parent_name\":\"SocketEnginePollable\"},\"Protocols/SocketEnginePollable.html#/s:8SocketIO0A14EnginePollableP11stopPollingyyF\":{\"name\":\"stopPolling()\",\"abstract\":\"<p>Call to stop polling and invalidate the URLSession.</p>\",\"parent_name\":\"SocketEnginePollable\"},\"Protocols/SocketEngineClient.html#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidErrorWithReason:\":{\"name\":\"engineDidError(reason:)\",\"abstract\":\"<p>Called when the engine errors.</p>\",\"parent_name\":\"SocketEngineClient\"},\"Protocols/SocketEngineClient.html#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidCloseWithReason:\":{\"name\":\"engineDidClose(reason:)\",\"abstract\":\"<p>Called when the engine closes.</p>\",\"parent_name\":\"SocketEngineClient\"},\"Protocols/SocketEngineClient.html#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidOpenWithReason:\":{\"name\":\"engineDidOpen(reason:)\",\"abstract\":\"<p>Called when the engine opens.</p>\",\"parent_name\":\"SocketEngineClient\"},\"Protocols/SocketEngineClient.html#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidReceivePing\":{\"name\":\"engineDidReceivePing()\",\"abstract\":\"<p>Called when the engine receives a ping message. Only called in socket.io &gt;3.</p>\",\"parent_name\":\"SocketEngineClient\"},\"Protocols/SocketEngineClient.html#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidReceivePong\":{\"name\":\"engineDidReceivePong()\",\"abstract\":\"<p>Called when the engine receives a pong message. Only called in socket.io 2.</p>\",\"parent_name\":\"SocketEngineClient\"},\"Protocols/SocketEngineClient.html#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidSendPing\":{\"name\":\"engineDidSendPing()\",\"abstract\":\"<p>Called when the engine sends a ping to the server. Only called in socket.io 2.</p>\",\"parent_name\":\"SocketEngineClient\"},\"Protocols/SocketEngineClient.html#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidSendPong\":{\"name\":\"engineDidSendPong()\",\"abstract\":\"<p>Called when the engine sends a pong to the server. Only called in socket.io &gt;3.</p>\",\"parent_name\":\"SocketEngineClient\"},\"Protocols/SocketEngineClient.html#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)parseEngineMessage:\":{\"name\":\"parseEngineMessage(_:)\",\"abstract\":\"<p>Called when the engine has a message that must be parsed.</p>\",\"parent_name\":\"SocketEngineClient\"},\"Protocols/SocketEngineClient.html#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)parseEngineBinaryData:\":{\"name\":\"parseEngineBinaryData(_:)\",\"abstract\":\"<p>Called when the engine receives binary data.</p>\",\"parent_name\":\"SocketEngineClient\"},\"Protocols/SocketEngineClient.html#/c:@M@SocketIO@objc(pl)SocketEngineClient(im)engineDidWebsocketUpgradeWithHeaders:\":{\"name\":\"engineDidWebsocketUpgrade(headers:)\",\"abstract\":\"<p>Called when when upgrading the http connection to a websocket connection.</p>\",\"parent_name\":\"SocketEngineClient\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP10anyHandleryAA0A8AnyEventCcSgvp\":{\"name\":\"anyHandler\",\"abstract\":\"<p>A handler that will be called on any event.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP8handlersSayAA0A12EventHandlerVGvp\":{\"name\":\"handlers\",\"abstract\":\"<p>The array of handlers for this socket.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP7managerAA0a7ManagerD0_pSgvp\":{\"name\":\"manager\",\"abstract\":\"<p>The manager for this socket.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP3nspSSvp\":{\"name\":\"nsp\",\"abstract\":\"<p>The namespace that this socket is currently connected to.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP11rawEmitViewAA0a3RawG0Cvp\":{\"name\":\"rawEmitView\",\"abstract\":\"<p>A view into this socket where emits do not check for binary data.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP3sidSSSgvp\":{\"name\":\"sid\",\"abstract\":\"<p>The id of this socket.io connect. This is different from the sid of the engine.io connection.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP6statusAA0A8IOStatusOvp\":{\"name\":\"status\",\"abstract\":\"<p>The status of this client.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP7connect11withPayloadySDySSypGSg_tF\":{\"name\":\"connect(withPayload:)\",\"abstract\":\"<p>Connect to the server. The same as calling <code>connect(timeoutAfter:withHandler:)</code> with a timeout of 0.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP7connect11withPayload12timeoutAfter0F7HandlerySDySSypGSg_SdyycSgtF\":{\"name\":\"connect(withPayload:timeoutAfter:withHandler:)\",\"abstract\":\"<p>Connect to the server. If we aren&rsquo;t connected after <code>timeoutAfter</code> seconds, then <code>withHandler</code> is called.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP10didConnect11toNamespace7payloadySS_SDySSypGSgtF\":{\"name\":\"didConnect(toNamespace:payload:)\",\"abstract\":\"<p>Called when the client connects to a namespace. If the client was created with a namespace upfront,\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP13didDisconnect6reasonySS_tF\":{\"name\":\"didDisconnect(reason:)\",\"abstract\":\"<p>Called when the client has disconnected from socket.io.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP8didError6reasonySS_tF\":{\"name\":\"didError(reason:)\",\"abstract\":\"<p>Called when the client encounters an error.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP10disconnectyyF\":{\"name\":\"disconnect()\",\"abstract\":\"<p>Disconnects the socket.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP4emit__10completionySS_AA0A4Data_pdyycSgtF\":{\"name\":\"emit(_:_:completion:)\",\"abstract\":\"<p>Send an event to the server, with optional data items and optional write completion handler.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP7emitAck_4withySi_SayypGtF\":{\"name\":\"emitAck(_:with:)\",\"abstract\":\"<p>Call when you wish to tell the server that you&rsquo;ve received the event for <code>ack</code>.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP11emitWithAckyAA02OnG8CallbackCSS_AA0A4Data_pdtF\":{\"name\":\"emitWithAck(_:_:)\",\"abstract\":\"<p>Sends a message to the server, requesting an ack.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP9handleAck_4dataySi_SayypGtF\":{\"name\":\"handleAck(_:data:)\",\"abstract\":\"<p>Called when socket.io has acked one of our emits. Causes the corresponding ack callback to be called.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP17handleClientEvent_4datayAA0afG0O_SayypGtF\":{\"name\":\"handleClientEvent(_:data:)\",\"abstract\":\"<p>Called on socket.io specific events.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP11handleEvent_4data17isInternalMessage7withAckySS_SayypGSbSitF\":{\"name\":\"handleEvent(_:data:isInternalMessage:withAck:)\",\"abstract\":\"<p>Called when we get an event from socket.io.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP12handlePacketyyAA0aF0VF\":{\"name\":\"handlePacket(_:)\",\"abstract\":\"<p>Causes a client to handle a socket.io packet. The namespace for the packet must match the namespace of the\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP14leaveNamespaceyyF\":{\"name\":\"leaveNamespace()\",\"abstract\":\"<p>Call when you wish to leave a namespace and disconnect this socket.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP13joinNamespace11withPayloadySDySSypGSg_tF\":{\"name\":\"joinNamespace(withPayload:)\",\"abstract\":\"<p>Joins <code><a href=\\\"36f8f5912051ae747ef441d6511ca4cbProtocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP3nspSSvp\\\">nsp</a></code>. You shouldn&rsquo;t need to call this directly, instead call <code>connect</code>.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP3off11clientEventyAA0a6ClientG0O_tF\":{\"name\":\"off(clientEvent:)\",\"abstract\":\"<p>Removes handler(s) for a client event.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP3offyySSF\":{\"name\":\"off(_:)\",\"abstract\":\"<p>Removes handler(s) based on an event name.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP3off2idy10Foundation4UUIDV_tF\":{\"name\":\"off(id:)\",\"abstract\":\"<p>Removes a handler with the specified UUID gotten from an <code>on</code> or <code>once</code></p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP2on_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\":{\"name\":\"on(_:callback:)\",\"abstract\":\"<p>Adds a handler for an event.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP2on11clientEvent8callback10Foundation4UUIDVAA0a6ClientG0O_ySayypG_AA0A10AckEmitterCtctF\":{\"name\":\"on(clientEvent:callback:)\",\"abstract\":\"<p>Adds a handler for a client event.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP4once11clientEvent8callback10Foundation4UUIDVAA0a6ClientG0O_ySayypG_AA0A10AckEmitterCtctF\":{\"name\":\"once(clientEvent:callback:)\",\"abstract\":\"<p>Adds a single-use handler for a client event.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP4once_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\":{\"name\":\"once(_:callback:)\",\"abstract\":\"<p>Adds a single-use handler for an event.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP5onAnyyyyAA0aF5EventCcF\":{\"name\":\"onAny(_:)\",\"abstract\":\"<p>Adds a handler that will be called on every event.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP17removeAllHandlersyyF\":{\"name\":\"removeAllHandlers()\",\"abstract\":\"<p>Removes all handlers.</p>\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/SocketIOClientSpec.html#/s:8SocketIO0A12IOClientSpecP15setReconnecting6reasonySS_tF\":{\"name\":\"setReconnecting(reason:)\",\"abstract\":\"<p>Puts the socket back into the connecting state.\",\"parent_name\":\"SocketIOClientSpec\"},\"Protocols/ConfigSettable.html#/s:8SocketIO14ConfigSettableP10setConfigsyyAA0A21IOClientConfigurationVF\":{\"name\":\"setConfigs(_:)\",\"abstract\":\"<p>Called when an <code>ConfigSettable</code> should set/update its configs from a given configuration.</p>\",\"parent_name\":\"ConfigSettable\"},\"Protocols/ConfigSettable.html\":{\"name\":\"ConfigSettable\",\"abstract\":\"<p>Declares that a type can set configs from a <code><a href=\\\"36f8f5912051ae747ef441d6511ca4cbStructs/SocketIOClientConfiguration.html\\\">SocketIOClientConfiguration</a></code>.</p>\"},\"Protocols/SocketIOClientSpec.html\":{\"name\":\"SocketIOClientSpec\",\"abstract\":\"<p>Defines the interface for a SocketIOClient.</p>\"},\"Protocols/SocketEngineClient.html\":{\"name\":\"SocketEngineClient\",\"abstract\":\"<p>Declares that a type will be a delegate to an engine.</p>\"},\"Protocols/SocketEnginePollable.html\":{\"name\":\"SocketEnginePollable\",\"abstract\":\"<p>Protocol that is used to implement socket.io polling support</p>\"},\"Protocols/SocketEngineSpec.html\":{\"name\":\"SocketEngineSpec\",\"abstract\":\"<p>Specifies a SocketEngine.</p>\"},\"Protocols/SocketEngineWebsocket.html\":{\"name\":\"SocketEngineWebsocket\",\"abstract\":\"<p>Protocol that is used to implement socket.io WebSocket support</p>\"},\"Protocols/SocketManagerSpec.html\":{\"name\":\"SocketManagerSpec\",\"abstract\":\"<p>A manager for a socket.io connection.</p>\"},\"Protocols/SocketParsable.html\":{\"name\":\"SocketParsable\",\"abstract\":\"<p>Defines that a type will be able to parse socket.io-protocol messages.</p>\"},\"Protocols/SocketDataBufferable.html\":{\"name\":\"SocketDataBufferable\",\"abstract\":\"<p>Says that a type will be able to buffer binary data before all data for an event has come in.</p>\"},\"Protocols/SocketLogger.html\":{\"name\":\"SocketLogger\",\"abstract\":\"<p>Represents a class will log client events.</p>\"},\"Protocols/SocketData.html\":{\"name\":\"SocketData\",\"abstract\":\"<p>A marking protocol that says a type can be represented in a socket.io packet.</p>\"},\"Extensions.html#/s:Sa\":{\"name\":\"Array\"},\"Extensions.html#/s:Sb\":{\"name\":\"Bool\"},\"Extensions.html#/s:SD\":{\"name\":\"Dictionary\"},\"Extensions.html#/s:Sd\":{\"name\":\"Double\"},\"Extensions.html#/s:Si\":{\"name\":\"Int\"},\"Extensions.html#/c:objc(cs)NSArray\":{\"name\":\"NSArray\"},\"Extensions.html#/s:10Foundation4DataV\":{\"name\":\"Data\"},\"Extensions.html#/c:objc(cs)NSData\":{\"name\":\"NSData\"},\"Extensions.html#/c:objc(cs)NSDictionary\":{\"name\":\"NSDictionary\"},\"Extensions.html#/c:objc(cs)NSString\":{\"name\":\"NSString\"},\"Extensions.html#/c:objc(cs)NSNull\":{\"name\":\"NSNull\"},\"Extensions.html#/s:SS\":{\"name\":\"String\"},\"Enums/SocketParsableError.html#/s:8SocketIO0A13ParsableErrorO16invalidDataArrayyA2CmF\":{\"name\":\"invalidDataArray\",\"abstract\":\"<p>Thrown when a packet received has an invalid data array, or is missing the data array.</p>\",\"parent_name\":\"SocketParsableError\"},\"Enums/SocketParsableError.html#/s:8SocketIO0A13ParsableErrorO13invalidPacketyA2CmF\":{\"name\":\"invalidPacket\",\"abstract\":\"<p>Thrown when an malformed packet is received.</p>\",\"parent_name\":\"SocketParsableError\"},\"Enums/SocketParsableError.html#/s:8SocketIO0A13ParsableErrorO17invalidPacketTypeyA2CmF\":{\"name\":\"invalidPacketType\",\"abstract\":\"<p>Thrown when the parser receives an unknown packet type.</p>\",\"parent_name\":\"SocketParsableError\"},\"Enums/SocketEnginePacketType.html#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeOpen\":{\"name\":\"open\",\"abstract\":\"<p>Open message.</p>\",\"parent_name\":\"SocketEnginePacketType\"},\"Enums/SocketEnginePacketType.html#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeClose\":{\"name\":\"close\",\"abstract\":\"<p>Close message.</p>\",\"parent_name\":\"SocketEnginePacketType\"},\"Enums/SocketEnginePacketType.html#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypePing\":{\"name\":\"ping\",\"abstract\":\"<p>Ping message.</p>\",\"parent_name\":\"SocketEnginePacketType\"},\"Enums/SocketEnginePacketType.html#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypePong\":{\"name\":\"pong\",\"abstract\":\"<p>Pong message.</p>\",\"parent_name\":\"SocketEnginePacketType\"},\"Enums/SocketEnginePacketType.html#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeMessage\":{\"name\":\"message\",\"abstract\":\"<p>Regular message.</p>\",\"parent_name\":\"SocketEnginePacketType\"},\"Enums/SocketEnginePacketType.html#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeUpgrade\":{\"name\":\"upgrade\",\"abstract\":\"<p>Upgrade message.</p>\",\"parent_name\":\"SocketEnginePacketType\"},\"Enums/SocketEnginePacketType.html#/c:@M@SocketIO@E@SocketEnginePacketType@SocketEnginePacketTypeNoop\":{\"name\":\"noop\",\"abstract\":\"<p>NOOP.</p>\",\"parent_name\":\"SocketEnginePacketType\"},\"Enums/SocketIOStatus.html#/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusNotConnected\":{\"name\":\"notConnected\",\"abstract\":\"<p>The client/manager has never been connected. Or the client has been reset.</p>\",\"parent_name\":\"SocketIOStatus\"},\"Enums/SocketIOStatus.html#/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusDisconnected\":{\"name\":\"disconnected\",\"abstract\":\"<p>The client/manager was once connected, but not anymore.</p>\",\"parent_name\":\"SocketIOStatus\"},\"Enums/SocketIOStatus.html#/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusConnecting\":{\"name\":\"connecting\",\"abstract\":\"<p>The client/manager is in the process of connecting.</p>\",\"parent_name\":\"SocketIOStatus\"},\"Enums/SocketIOStatus.html#/c:@M@SocketIO@E@SocketIOStatus@SocketIOStatusConnected\":{\"name\":\"connected\",\"abstract\":\"<p>The client/manager is currently connected.</p>\",\"parent_name\":\"SocketIOStatus\"},\"Enums/SocketIOStatus.html#/s:8SocketIO0A8IOStatusO6activeSbvp\":{\"name\":\"active\",\"parent_name\":\"SocketIOStatus\"},\"Enums/SocketIOStatus.html#/s:s23CustomStringConvertibleP11descriptionSSvp\":{\"name\":\"description\",\"parent_name\":\"SocketIOStatus\"},\"Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO7connectyA2CmF\":{\"name\":\"connect\",\"abstract\":\"<p>Emitted when the client connects. This is also called on a successful reconnection. A connect event gets one\",\"parent_name\":\"SocketClientEvent\"},\"Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO10disconnectyA2CmF\":{\"name\":\"disconnect\",\"abstract\":\"<p>Emitted when the socket has disconnected and will not attempt to try to reconnect.</p>\",\"parent_name\":\"SocketClientEvent\"},\"Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO5erroryA2CmF\":{\"name\":\"error\",\"abstract\":\"<p>Emitted when an error occurs.</p>\",\"parent_name\":\"SocketClientEvent\"},\"Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO4pingyA2CmF\":{\"name\":\"ping\",\"abstract\":\"<p>Emitted whenever the engine sends a ping.</p>\",\"parent_name\":\"SocketClientEvent\"},\"Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO4pongyA2CmF\":{\"name\":\"pong\",\"abstract\":\"<p>Emitted whenever the engine gets a pong.</p>\",\"parent_name\":\"SocketClientEvent\"},\"Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO9reconnectyA2CmF\":{\"name\":\"reconnect\",\"abstract\":\"<p>Emitted when the client begins the reconnection process.</p>\",\"parent_name\":\"SocketClientEvent\"},\"Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO16reconnectAttemptyA2CmF\":{\"name\":\"reconnectAttempt\",\"abstract\":\"<p>Emitted each time the client tries to reconnect to the server.</p>\",\"parent_name\":\"SocketClientEvent\"},\"Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO12statusChangeyA2CmF\":{\"name\":\"statusChange\",\"abstract\":\"<p>Emitted every time there is a change in the client&rsquo;s status.</p>\",\"parent_name\":\"SocketClientEvent\"},\"Enums/SocketClientEvent.html#/s:8SocketIO0A11ClientEventO16websocketUpgradeyA2CmF\":{\"name\":\"websocketUpgrade\",\"abstract\":\"<p>Emitted when when upgrading the http connection to a websocket connection.</p>\",\"parent_name\":\"SocketClientEvent\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO8compressyA2CmF\":{\"name\":\"compress\",\"abstract\":\"<p>If given, the WebSocket transport will attempt to use compression.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO13connectParamsyACSDySSypGcACmF\":{\"name\":\"connectParams(_:)\",\"abstract\":\"<p>A dictionary of GET parameters that will be included in the connect url.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO7cookiesyACSaySo12NSHTTPCookieCGcACmF\":{\"name\":\"cookies(_:)\",\"abstract\":\"<p>An array of cookies that will be sent during the initial connection.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO12extraHeadersyACSDyS2SGcACmF\":{\"name\":\"extraHeaders(_:)\",\"abstract\":\"<p>Any extra HTTP headers that should be sent during the initial connection.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO8forceNewyACSbcACmF\":{\"name\":\"forceNew(_:)\",\"abstract\":\"<p>If passed <code>true</code>, will cause the client to always create a new engine. Useful for debugging,\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO12forcePollingyACSbcACmF\":{\"name\":\"forcePolling(_:)\",\"abstract\":\"<p>If passed <code>true</code>, the only transport that will be used will be HTTP long-polling.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO15forceWebsocketsyACSbcACmF\":{\"name\":\"forceWebsockets(_:)\",\"abstract\":\"<p>If passed <code>true</code>, the only transport that will be used will be WebSockets.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO16enableSOCKSProxyyACSbcACmF\":{\"name\":\"enableSOCKSProxy(_:)\",\"abstract\":\"<p>If passed <code>true</code>, the WebSocket stream will be configured with the enableSOCKSProxy <code>true</code>.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO11handleQueueyACSo17OS_dispatch_queueCcACmF\":{\"name\":\"handleQueue(_:)\",\"abstract\":\"<p>The queue that all interaction with the client should occur on. This is the queue that event handlers are\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO3logyACSbcACmF\":{\"name\":\"log(_:)\",\"abstract\":\"<p>If passed <code>true</code>, the client will log debug information. This should be turned off in production code.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO6loggeryAcA0A6Logger_pcACmF\":{\"name\":\"logger(_:)\",\"abstract\":\"<p>Used to pass in a custom logger.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO4pathyACSScACmF\":{\"name\":\"path(_:)\",\"abstract\":\"<p>A custom path to socket.io. Only use this if the socket.io server is configured to look for this path.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO10reconnectsyACSbcACmF\":{\"name\":\"reconnects(_:)\",\"abstract\":\"<p>If passed <code>false</code>, the client will not reconnect when it loses connection. Useful if you want full control\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO17reconnectAttemptsyACSicACmF\":{\"name\":\"reconnectAttempts(_:)\",\"abstract\":\"<p>The number of times to try and reconnect before giving up. Pass <code>-1</code> to <a href=\\\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\\\">never give up</a>.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO13reconnectWaityACSicACmF\":{\"name\":\"reconnectWait(_:)\",\"abstract\":\"<p>The minimum number of seconds to wait before reconnect attempts.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO16reconnectWaitMaxyACSicACmF\":{\"name\":\"reconnectWaitMax(_:)\",\"abstract\":\"<p>The maximum number of seconds to wait before reconnect attempts.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO19randomizationFactoryACSdcACmF\":{\"name\":\"randomizationFactor(_:)\",\"abstract\":\"<p>The randomization factor for calculating reconnect jitter.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO6secureyACSbcACmF\":{\"name\":\"secure(_:)\",\"abstract\":\"<p>Set <code>true</code> if your server is using secure transports.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO8securityyAC10Starscream18CertificatePinning_pcACmF\":{\"name\":\"security(_:)\",\"abstract\":\"<p>Allows you to set which certs are valid. Useful for SSL pinning.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO10selfSignedyACSbcACmF\":{\"name\":\"selfSigned(_:)\",\"abstract\":\"<p>If you&rsquo;re using a self-signed set. Only use for development.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO15sessionDelegateyACSo012NSURLSessionF0_pcACmF\":{\"name\":\"sessionDelegate(_:)\",\"abstract\":\"<p>Sets an NSURLSessionDelegate for the underlying engine. Useful if you need to handle self-signed certs.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO7versionyAcA0A9IOVersionOcACmF\":{\"name\":\"version(_:)\",\"abstract\":\"<p>The version of socket.io being used. This should match the server version. Default is 3.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO11descriptionSSvp\":{\"name\":\"description\",\"abstract\":\"<p>The description of this option.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOClientOption.html#/s:8SocketIO0A14IOClientOptionO2eeoiySbAC_ACtFZ\":{\"name\":\"==(_:_:)\",\"abstract\":\"<p>Compares whether two options are the same.</p>\",\"parent_name\":\"SocketIOClientOption\"},\"Enums/SocketIOVersion.html#/s:8SocketIO0A9IOVersionO3twoyA2CmF\":{\"name\":\"two\",\"abstract\":\"<p>socket.io 2, engine.io 3</p>\",\"parent_name\":\"SocketIOVersion\"},\"Enums/SocketIOVersion.html#/s:8SocketIO0A9IOVersionO5threeyA2CmF\":{\"name\":\"three\",\"abstract\":\"<p>socket.io 3, engine.io 4</p>\",\"parent_name\":\"SocketIOVersion\"},\"Enums/SocketAckStatus.html#/s:8SocketIO0A9AckStatusO02noC0yA2CmF\":{\"name\":\"noAck\",\"abstract\":\"<p>The ack timed out.</p>\",\"parent_name\":\"SocketAckStatus\"},\"Enums/SocketAckStatus.html#/s:8SocketIO0A9AckStatusO2eeoiySbSS_ACtFZ\":{\"name\":\"==(_:_:)\",\"abstract\":\"<p>Tests whether a string is equal to a given SocketAckStatus</p>\",\"parent_name\":\"SocketAckStatus\"},\"Enums/SocketAckStatus.html#/s:8SocketIO0A9AckStatusO2eeoiySbAC_SStFZ\":{\"name\":\"==(_:_:)\",\"abstract\":\"<p>Tests whether a string is equal to a given SocketAckStatus</p>\",\"parent_name\":\"SocketAckStatus\"},\"Enums/SocketAckStatus.html\":{\"name\":\"SocketAckStatus\",\"abstract\":\"<p>The status of an ack.</p>\"},\"Enums/SocketIOVersion.html\":{\"name\":\"SocketIOVersion\",\"abstract\":\"<p>The socket.io version being used.</p>\"},\"Enums/SocketIOClientOption.html\":{\"name\":\"SocketIOClientOption\",\"abstract\":\"<p>The options for a client.</p>\"},\"Enums/SocketClientEvent.html\":{\"name\":\"SocketClientEvent\",\"abstract\":\"<p>The set of events that are generated by the client.</p>\"},\"Enums/SocketIOStatus.html\":{\"name\":\"SocketIOStatus\",\"abstract\":\"<p>Represents state of a manager or client.</p>\"},\"Enums/SocketEnginePacketType.html\":{\"name\":\"SocketEnginePacketType\",\"abstract\":\"<p>Represents the type of engine.io packet types.</p>\"},\"Enums/SocketParsableError.html\":{\"name\":\"SocketParsableError\",\"abstract\":\"<p>Errors that can be thrown during parsing.</p>\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC07defaultA0AA0A8IOClientCvp\":{\"name\":\"defaultSocket\",\"abstract\":\"<p>The socket associated with the default namespace (&ldquo;/&rdquo;).</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC9socketURL10Foundation0E0Vvp\":{\"name\":\"socketURL\",\"abstract\":\"<p>The URL of the socket.io server.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC6configAA0A21IOClientConfigurationVvp\":{\"name\":\"config\",\"abstract\":\"<p>The configuration for this client.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC6engineAA0A10EngineSpec_pSgvp\":{\"name\":\"engine\",\"abstract\":\"<p>The engine for this manager.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC8forceNewSbvp\":{\"name\":\"forceNew\",\"abstract\":\"<p>If <code>true</code> then every time <code>connect</code> is called, a new engine will be created.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC11handleQueueSo17OS_dispatch_queueCvp\":{\"name\":\"handleQueue\",\"abstract\":\"<p>The queue that all interaction with the client should occur on. This is the queue that event handlers are\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC4nspsSDySSAA0A8IOClientCGvp\":{\"name\":\"nsps\",\"abstract\":\"<p>The sockets in this manager indexed by namespace.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC10reconnectsSbvp\":{\"name\":\"reconnects\",\"abstract\":\"<p>If <code>true</code>, this client will try and reconnect on any disconnects.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC13reconnectWaitSivp\":{\"name\":\"reconnectWait\",\"abstract\":\"<p>The minimum number of seconds to wait before attempting to reconnect.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC16reconnectWaitMaxSivp\":{\"name\":\"reconnectWaitMax\",\"abstract\":\"<p>The maximum number of seconds to wait before attempting to reconnect.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC19randomizationFactorSdvp\":{\"name\":\"randomizationFactor\",\"abstract\":\"<p>The randomization factor for calculating reconnect jitter.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC6statusAA0A8IOStatusOvp\":{\"name\":\"status\",\"abstract\":\"<p>The status of this manager.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A11ManagerSpecP7versionAA0A9IOVersionOvp\":{\"name\":\"version\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC14waitingPacketsSayAA0A6PacketVGvp\":{\"name\":\"waitingPackets\",\"abstract\":\"<p>A list of packets that are waiting for binary data.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC9socketURL6configAC10Foundation0E0V_AA0A21IOClientConfigurationVtcfc\":{\"name\":\"init(socketURL:config:)\",\"abstract\":\"<p>Type safe way to create a new SocketIOClient. <code>opts</code> can be omitted.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)initWithSocketURL:config:\":{\"name\":\"init(socketURL:config:)\",\"abstract\":\"<p>Not so type safe way to create a SocketIOClient, meant for Objective-C compatiblity.\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC7connectyyF\":{\"name\":\"connect()\",\"abstract\":\"<p>Connects the underlying transport and the default namespace socket.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC07connectA0_11withPayloadyAA0A8IOClientC_SDySSypGSgtF\":{\"name\":\"connectSocket(_:withPayload:)\",\"abstract\":\"<p>Connects a socket through this manager&rsquo;s engine.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC13didDisconnect6reasonySS_tF\":{\"name\":\"didDisconnect(reason:)\",\"abstract\":\"<p>Called when the manager has disconnected from socket.io.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC10disconnectyyF\":{\"name\":\"disconnect()\",\"abstract\":\"<p>Disconnects the manager and all associated sockets.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC010disconnectA0yyAA0A8IOClientCF\":{\"name\":\"disconnectSocket(_:)\",\"abstract\":\"<p>Disconnects the given socket.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC010disconnectA012forNamespaceySS_tF\":{\"name\":\"disconnectSocket(forNamespace:)\",\"abstract\":\"<p>Disconnects the socket associated with <code>forNamespace</code>.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC7emitAll11clientEvent4datayAA0a6ClientG0O_SayypGtF\":{\"name\":\"emitAll(clientEvent:data:)\",\"abstract\":\"<p>Sends a client event to all sockets in <code><a href=\\\"36f8f5912051ae747ef441d6511ca4cbClasses/SocketManager.html#/s:8SocketIO0A7ManagerC4nspsSDySSAA0A8IOClientCGvp\\\">nsps</a></code></p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC7emitAllyySS_AA0A4Data_pdtF\":{\"name\":\"emitAll(_:_:)\",\"abstract\":\"<p>Sends an event to the server on all namespaces in this manager.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidCloseWithReason:\":{\"name\":\"engineDidClose(reason:)\",\"abstract\":\"<p>Called when the engine closes.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidErrorWithReason:\":{\"name\":\"engineDidError(reason:)\",\"abstract\":\"<p>Called when the engine errors.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidOpenWithReason:\":{\"name\":\"engineDidOpen(reason:)\",\"abstract\":\"<p>Called when the engine opens.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidReceivePing\":{\"name\":\"engineDidReceivePing()\",\"abstract\":\"<p>Called when the engine receives a ping message.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidSendPing\":{\"name\":\"engineDidSendPing()\",\"abstract\":\"<p>Called when the sends a ping to the server.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidReceivePong\":{\"name\":\"engineDidReceivePong()\",\"abstract\":\"<p>Called when the engine receives a pong message.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidSendPong\":{\"name\":\"engineDidSendPong()\",\"abstract\":\"<p>Called when the sends a pong to the server.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)engineDidWebsocketUpgradeWithHeaders:\":{\"name\":\"engineDidWebsocketUpgrade(headers:)\",\"abstract\":\"<p>Called when when upgrading the http connection to a websocket connection.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)parseEngineMessage:\":{\"name\":\"parseEngineMessage(_:)\",\"abstract\":\"<p>Called when the engine has a message that must be parsed.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/c:@M@SocketIO@objc(cs)SocketManager(im)parseEngineBinaryData:\":{\"name\":\"parseEngineBinaryData(_:)\",\"abstract\":\"<p>Called when the engine receives binary data.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC9reconnectyyF\":{\"name\":\"reconnect()\",\"abstract\":\"<p>Tries to reconnect to the server.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC06removeA0yAA0A8IOClientCSgAFF\":{\"name\":\"removeSocket(_:)\",\"abstract\":\"<p>Removes the socket from the manager&rsquo;s control. One of the disconnect methods should be called before calling this\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC10setConfigsyyAA0A21IOClientConfigurationVF\":{\"name\":\"setConfigs(_:)\",\"abstract\":\"<p>Sets manager specific configs.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketManager.html#/s:8SocketIO0A7ManagerC6socket12forNamespaceAA0A8IOClientCSS_tF\":{\"name\":\"socket(forNamespace:)\",\"abstract\":\"<p>Returns a <code><a href=\\\"36f8f5912051ae747ef441d6511ca4cbClasses/SocketIOClient.html\\\">SocketIOClient</a></code> for the given namespace. This socket shares a transport with the manager.</p>\",\"parent_name\":\"SocketManager\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC11engineQueueSo17OS_dispatch_queueCvp\":{\"name\":\"engineQueue\",\"abstract\":\"<p>The queue that all engine actions take place on.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC13connectParamsSDySSypGSgvp\":{\"name\":\"connectParams\",\"abstract\":\"<p>The connect parameters sent during a connect.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC12extraHeadersSDyS2SGSgvp\":{\"name\":\"extraHeaders\",\"abstract\":\"<p>A dictionary of extra http headers that will be set during connection.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC8postWaitSaySS3msg_yycSg10completiontGvp\":{\"name\":\"postWait\",\"abstract\":\"<p>A queue of engine.io messages waiting for POSTing</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC14waitingForPollSbvp\":{\"name\":\"waitingForPoll\",\"abstract\":\"<p><code>true</code> if there is an outstanding poll. Trying to poll before the first is done will cause socket.io to\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC14waitingForPostSbvp\":{\"name\":\"waitingForPost\",\"abstract\":\"<p><code>true</code> if there is an outstanding post. Trying to post before the first is done will cause socket.io to\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC6closedSbvp\":{\"name\":\"closed\",\"abstract\":\"<p><code>true</code> if this engine is closed.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC8compressSbvp\":{\"name\":\"compress\",\"abstract\":\"<p>If <code>true</code> the engine will attempt to use WebSocket compression.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC9connectedSbvp\":{\"name\":\"connected\",\"abstract\":\"<p><code>true</code> if this engine is connected. Connected means that the initial poll connect has succeeded.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC7cookiesSaySo12NSHTTPCookieCGSgvp\":{\"name\":\"cookies\",\"abstract\":\"<p>An array of HTTPCookies that are sent during the connection.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC11fastUpgradeSbvp\":{\"name\":\"fastUpgrade\",\"abstract\":\"<p>When <code>true</code>, the engine is in the process of switching to WebSockets.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC12forcePollingSbvp\":{\"name\":\"forcePolling\",\"abstract\":\"<p>When <code>true</code>, the engine will only use HTTP long-polling as a transport.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC15forceWebsocketsSbvp\":{\"name\":\"forceWebsockets\",\"abstract\":\"<p>When <code>true</code>, the engine will only use WebSockets as a transport.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC11invalidatedSbvp\":{\"name\":\"invalidated\",\"abstract\":\"<p><code>true</code> If engine&rsquo;s session has been invalidated.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC7pollingSbvp\":{\"name\":\"polling\",\"abstract\":\"<p>If <code>true</code>, the engine is currently in HTTP long-polling mode.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC7probingSbvp\":{\"name\":\"probing\",\"abstract\":\"<p>If <code>true</code>, the engine is currently seeing whether it can upgrade to WebSockets.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC7sessionSo12NSURLSessionCSgvp\":{\"name\":\"session\",\"abstract\":\"<p>The URLSession that will be used for polling.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC3sidSSvp\":{\"name\":\"sid\",\"abstract\":\"<p>The session id for this engine.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC10socketPathSSvp\":{\"name\":\"socketPath\",\"abstract\":\"<p>The path to engine.io.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC10urlPolling10Foundation3URLVvp\":{\"name\":\"urlPolling\",\"abstract\":\"<p>The url for polling.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC06urlWebA010Foundation3URLVvp\":{\"name\":\"urlWebSocket\",\"abstract\":\"<p>The url for WebSockets.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC7versionAA0A9IOVersionOvp\":{\"name\":\"version\",\"abstract\":\"<p>The version of engine.io being used. Default is three.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC9websocketSbvp\":{\"name\":\"websocket\",\"abstract\":\"<p>If <code>true</code>, then the engine is currently in WebSockets mode.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC16enableSOCKSProxySbvp\":{\"name\":\"enableSOCKSProxy\",\"abstract\":\"<p>When <code>true</code>, the WebSocket <code>stream</code> will be configured with the enableSOCKSProxy <code>true</code>.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC2ws10Starscream03WebA0CSgvp\":{\"name\":\"ws\",\"abstract\":\"<p>The WebSocket for this engine.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC11wsConnectedSbvp\":{\"name\":\"wsConnected\",\"abstract\":\"<p>Whether or not the WebSocket is currently connected.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC6clientAA0aC6Client_pSgvp\":{\"name\":\"client\",\"abstract\":\"<p>The client for this engine.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC6client3url6configAcA0aC6Client_p_10Foundation3URLVAA0A21IOClientConfigurationVtcfc\":{\"name\":\"init(client:url:config:)\",\"abstract\":\"<p>Creates a new engine.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC6client3url7optionsAcA0aC6Client_p_10Foundation3URLVSDySSypGSgtcfc\":{\"name\":\"init(client:url:options:)\",\"abstract\":\"<p>Creates a new engine.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC7connectyyF\":{\"name\":\"connect()\",\"abstract\":\"<p>Starts the connection to the server.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC8didError6reasonySS_tF\":{\"name\":\"didError(reason:)\",\"abstract\":\"<p>Called when an error happens during execution. Causes a disconnection.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC10disconnect6reasonySS_tF\":{\"name\":\"disconnect(reason:)\",\"abstract\":\"<p>Disconnects from the server.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC13doFastUpgradeyyF\":{\"name\":\"doFastUpgrade()\",\"abstract\":\"<p>Called to switch from HTTP long-polling to WebSockets. After calling this method the engine will be in\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC024flushWaitingForPostToWebA0yyF\":{\"name\":\"flushWaitingForPostToWebSocket()\",\"abstract\":\"<p>Causes any packets that were waiting for POSTing to be sent through the WebSocket. This happens because when\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC05parseC4Datayy10Foundation0E0VF\":{\"name\":\"parseEngineData(_:)\",\"abstract\":\"<p>Parses raw binary received from engine.io.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC05parseC7MessageyySSF\":{\"name\":\"parseEngineMessage(_:)\",\"abstract\":\"<p>Parses a raw engine.io packet.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC10setConfigsyyAA0A21IOClientConfigurationVF\":{\"name\":\"setConfigs(_:)\",\"abstract\":\"<p>Called when the engine should set/update its configs from a given configuration.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC5write_8withType0E4Data10completionySS_AA0ac6PacketF0OSay10Foundation0G0VGyycSgtF\":{\"name\":\"write(_:withType:withData:completion:)\",\"abstract\":\"<p>Writes a message to engine.io, independent of transport.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC10URLSession7session25didBecomeInvalidWithErrorySo12NSURLSessionC_So7NSErrorCSgtF\":{\"name\":\"URLSession(session:didBecomeInvalidWithError:)\",\"abstract\":\"<p>Delegate called when the session becomes invalid.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketEngine.html#/s:8SocketIO0A6EngineC10didReceive5event6clienty10Starscream03WebA5EventO_AG0iA0CtF\":{\"name\":\"didReceive(event:client:)\",\"abstract\":\"<p>Delegate method for WebSocketDelegate.</p>\",\"parent_name\":\"SocketEngine\"},\"Classes/SocketRawAckView.html#/s:8SocketIO0A10RawAckViewC4withyyAA0A4Data_pd_tF\":{\"name\":\"with(_:)\",\"abstract\":\"<p>Call to ack receiving this event.</p>\",\"parent_name\":\"SocketRawAckView\"},\"Classes/SocketRawAckView.html#/c:@M@SocketIO@objc(cs)SocketRawAckView(im)with:\":{\"name\":\"with(_:)\",\"abstract\":\"<p>Call to ack receiving this event.</p>\",\"parent_name\":\"SocketRawAckView\"},\"Classes/SocketRawView.html#/s:8SocketIO0A7RawViewC4emityySS_AA0A4Data_pdtF\":{\"name\":\"emit(_:_:)\",\"abstract\":\"<p>Send an event to the server, with optional data items.</p>\",\"parent_name\":\"SocketRawView\"},\"Classes/SocketRawView.html#/c:@M@SocketIO@objc(cs)SocketRawView(im)emit:with:\":{\"name\":\"emit(_:with:)\",\"abstract\":\"<p>Same as emit, but meant for Objective-C</p>\",\"parent_name\":\"SocketRawView\"},\"Classes/SocketRawView.html#/s:8SocketIO0A7RawViewC11emitWithAckyAA02OnG8CallbackCSS_AA0A4Data_pdtF\":{\"name\":\"emitWithAck(_:_:)\",\"abstract\":\"<p>Sends a message to the server, requesting an ack.</p>\",\"parent_name\":\"SocketRawView\"},\"Classes/SocketRawView.html#/c:@M@SocketIO@objc(cs)SocketRawView(im)emitWithAck:with:\":{\"name\":\"emitWithAck(_:with:)\",\"abstract\":\"<p>Same as emitWithAck, but for Objective-C</p>\",\"parent_name\":\"SocketRawView\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC3nspSSvp\":{\"name\":\"nsp\",\"abstract\":\"<p>The namespace that this socket is currently connected to.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC10anyHandleryAA0A8AnyEventCcSgvp\":{\"name\":\"anyHandler\",\"abstract\":\"<p>A handler that will be called on any event.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC8handlersSayAA0A12EventHandlerVGvp\":{\"name\":\"handlers\",\"abstract\":\"<p>The array of handlers for this socket.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC7managerAA0A11ManagerSpec_pSgvp\":{\"name\":\"manager\",\"abstract\":\"<p>The manager for this socket.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC11rawEmitViewAA0a3RawF0Cvp\":{\"name\":\"rawEmitView\",\"abstract\":\"<p>A view into this socket where emits do not check for binary data.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC6statusAA0A8IOStatusOvp\":{\"name\":\"status\",\"abstract\":\"<p>The status of this client.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC3sidSSSgvp\":{\"name\":\"sid\",\"abstract\":\"<p>The id of this socket.io connect. This is different from the sid of the engine.io connection.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC7manager3nspAcA0A11ManagerSpec_p_SStcfc\":{\"name\":\"init(manager:nsp:)\",\"abstract\":\"<p>Type safe way to create a new SocketIOClient. <code>opts</code> can be omitted.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC7connect11withPayloadySDySSypGSg_tF\":{\"name\":\"connect(withPayload:)\",\"abstract\":\"<p>Connect to the server. The same as calling <code>connect(timeoutAfter:withHandler:)</code> with a timeout of 0.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC7connect11withPayload12timeoutAfter0E7HandlerySDySSypGSg_SdyycSgtF\":{\"name\":\"connect(withPayload:timeoutAfter:withHandler:)\",\"abstract\":\"<p>Connect to the server. If we aren&rsquo;t connected after <code>timeoutAfter</code> seconds, then <code>withHandler</code> is called.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC10didConnect11toNamespace7payloadySS_SDySSypGSgtF\":{\"name\":\"didConnect(toNamespace:payload:)\",\"abstract\":\"<p>Called when the client connects to a namespace. If the client was created with a namespace upfront,\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC13didDisconnect6reasonySS_tF\":{\"name\":\"didDisconnect(reason:)\",\"abstract\":\"<p>Called when the client has disconnected from socket.io.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC10disconnectyyF\":{\"name\":\"disconnect()\",\"abstract\":\"<p>Disconnects the socket.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC4emit__10completionySS_AA0A4Data_pdyycSgtF\":{\"name\":\"emit(_:_:completion:)\",\"abstract\":\"<p>Send an event to the server, with optional data items and optional write completion handler.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC11emitWithAckyAA02OnF8CallbackCSS_AA0A4Data_pdtF\":{\"name\":\"emitWithAck(_:_:)\",\"abstract\":\"<p>Sends a message to the server, requesting an ack.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC7emitAck_4withySi_SayypGtF\":{\"name\":\"emitAck(_:with:)\",\"abstract\":\"<p>Call when you wish to tell the server that you&rsquo;ve received the event for <code>ack</code>.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC9handleAck_4dataySi_SayypGtF\":{\"name\":\"handleAck(_:data:)\",\"abstract\":\"<p>Called when socket.io has acked one of our emits. Causes the corresponding ack callback to be called.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC17handleClientEvent_4datayAA0aeF0O_SayypGtF\":{\"name\":\"handleClientEvent(_:data:)\",\"abstract\":\"<p>Called on socket.io specific events.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC11handleEvent_4data17isInternalMessage7withAckySS_SayypGSbSitF\":{\"name\":\"handleEvent(_:data:isInternalMessage:withAck:)\",\"abstract\":\"<p>Called when we get an event from socket.io.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC12handlePacketyyAA0aE0VF\":{\"name\":\"handlePacket(_:)\",\"abstract\":\"<p>Causes a client to handle a socket.io packet. The namespace for the packet must match the namespace of the\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC14leaveNamespaceyyF\":{\"name\":\"leaveNamespace()\",\"abstract\":\"<p>Call when you wish to leave a namespace and disconnect this socket.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC13joinNamespace11withPayloadySDySSypGSg_tF\":{\"name\":\"joinNamespace(withPayload:)\",\"abstract\":\"<p>Joins <code><a href=\\\"36f8f5912051ae747ef441d6511ca4cbClasses/SocketIOClient.html#/s:8SocketIO0A8IOClientC3nspSSvp\\\">nsp</a></code>. You shouldn&rsquo;t need to call this directly, instead call <code>connect</code>.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC3off11clientEventyAA0a6ClientF0O_tF\":{\"name\":\"off(clientEvent:)\",\"abstract\":\"<p>Removes handler(s) for a client event.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC3offyySSF\":{\"name\":\"off(_:)\",\"abstract\":\"<p>Removes handler(s) based on an event name.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC3off2idy10Foundation4UUIDV_tF\":{\"name\":\"off(id:)\",\"abstract\":\"<p>Removes a handler with the specified UUID gotten from an <code>on</code> or <code>once</code></p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC2on_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\":{\"name\":\"on(_:callback:)\",\"abstract\":\"<p>Adds a handler for an event.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC2on11clientEvent8callback10Foundation4UUIDVAA0a6ClientF0O_ySayypG_AA0A10AckEmitterCtctF\":{\"name\":\"on(clientEvent:callback:)\",\"abstract\":\"<p>Adds a handler for a client event.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC4once11clientEvent8callback10Foundation4UUIDVAA0a6ClientF0O_ySayypG_AA0A10AckEmitterCtctF\":{\"name\":\"once(clientEvent:callback:)\",\"abstract\":\"<p>Adds a single-use handler for a client event.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC4once_8callback10Foundation4UUIDVSS_ySayypG_AA0A10AckEmitterCtctF\":{\"name\":\"once(_:callback:)\",\"abstract\":\"<p>Adds a single-use handler for an event.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC5onAnyyyyAA0aE5EventCcF\":{\"name\":\"onAny(_:)\",\"abstract\":\"<p>Adds a handler that will be called on every event.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC17removeAllHandlersyyF\":{\"name\":\"removeAllHandlers()\",\"abstract\":\"<p>Removes all handlers.</p>\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketIOClient.html#/s:8SocketIO0A8IOClientC15setReconnecting6reasonySS_tF\":{\"name\":\"setReconnecting(reason:)\",\"abstract\":\"<p>Puts the socket back into the connecting state.\",\"parent_name\":\"SocketIOClient\"},\"Classes/SocketAnyEvent.html#/c:@M@SocketIO@objc(cs)SocketAnyEvent(py)event\":{\"name\":\"event\",\"abstract\":\"<p>The event name.</p>\",\"parent_name\":\"SocketAnyEvent\"},\"Classes/SocketAnyEvent.html#/c:@M@SocketIO@objc(cs)SocketAnyEvent(py)items\":{\"name\":\"items\",\"abstract\":\"<p>The data items for this event.</p>\",\"parent_name\":\"SocketAnyEvent\"},\"Classes/SocketAnyEvent.html#/c:@M@SocketIO@objc(cs)SocketAnyEvent(py)description\":{\"name\":\"description\",\"abstract\":\"<p>The description of this event.</p>\",\"parent_name\":\"SocketAnyEvent\"},\"Classes/OnAckCallback.html#/c:@M@SocketIO@objc(cs)OnAckCallback(im)timingOutAfter:callback:\":{\"name\":\"timingOut(after:callback:)\",\"abstract\":\"<p>Completes an emitWithAck. If this isn&rsquo;t called, the emit never happens.</p>\",\"parent_name\":\"OnAckCallback\"},\"Classes/SocketAckEmitter.html#/c:@M@SocketIO@objc(cs)SocketAckEmitter(py)rawEmitView\":{\"name\":\"rawEmitView\",\"abstract\":\"<p>A view into this emitter where emits do not check for binary data.</p>\",\"parent_name\":\"SocketAckEmitter\"},\"Classes/SocketAckEmitter.html#/s:8SocketIO0A10AckEmitterC8expectedSbvp\":{\"name\":\"expected\",\"abstract\":\"<p>If true, this handler is expecting to be acked. Call <code>with(_: SocketData...)</code> to ack.</p>\",\"parent_name\":\"SocketAckEmitter\"},\"Classes/SocketAckEmitter.html#/s:8SocketIO0A10AckEmitterC6socket6ackNumAcA0A8IOClientC_Sitcfc\":{\"name\":\"init(socket:ackNum:)\",\"abstract\":\"<p>Creates a new <code>SocketAckEmitter</code>.</p>\",\"parent_name\":\"SocketAckEmitter\"},\"Classes/SocketAckEmitter.html#/s:8SocketIO0A10AckEmitterC4withyyAA0A4Data_pd_tF\":{\"name\":\"with(_:)\",\"abstract\":\"<p>Call to ack receiving this event.</p>\",\"parent_name\":\"SocketAckEmitter\"},\"Classes/SocketAckEmitter.html#/c:@M@SocketIO@objc(cs)SocketAckEmitter(im)with:\":{\"name\":\"with(_:)\",\"abstract\":\"<p>Call to ack receiving this event.</p>\",\"parent_name\":\"SocketAckEmitter\"},\"Classes/SocketAckEmitter.html\":{\"name\":\"SocketAckEmitter\",\"abstract\":\"<p>A class that represents a waiting ack call.</p>\"},\"Classes/OnAckCallback.html\":{\"name\":\"OnAckCallback\",\"abstract\":\"<p>A class that represents an emit that will request an ack that has not yet been sent.\"},\"Classes/SocketAnyEvent.html\":{\"name\":\"SocketAnyEvent\",\"abstract\":\"<p>Represents some event that was received.</p>\"},\"Classes/SocketIOClient.html\":{\"name\":\"SocketIOClient\",\"abstract\":\"<p>Represents a socket.io-client.</p>\"},\"Classes/SocketRawView.html\":{\"name\":\"SocketRawView\",\"abstract\":\"<p>Class that gives a backwards compatible way to cause an emit not to recursively check for Data objects.</p>\"},\"Classes/SocketRawAckView.html\":{\"name\":\"SocketRawAckView\",\"abstract\":\"<p>Class that gives a backwards compatible way to cause an emit not to recursively check for Data objects.</p>\"},\"Classes/SocketEngine.html\":{\"name\":\"SocketEngine\",\"abstract\":\"<p>The class that handles the engine.io protocol and transports.\"},\"Classes/SocketManager.html\":{\"name\":\"SocketManager\",\"abstract\":\"<p>A manager for a socket.io connection.</p>\"},\"15to16.html\":{\"name\":\"15to16\"},\"faq.html\":{\"name\":\"FAQ\"},\"12to13.html\":{\"name\":\"12to13\"},\"Guides.html\":{\"name\":\"Guides\",\"abstract\":\"<p>The following guides are available globally.</p>\"},\"Classes.html\":{\"name\":\"Classes\",\"abstract\":\"<p>The following classes are available globally.</p>\"},\"Enums.html\":{\"name\":\"Enumerations\",\"abstract\":\"<p>The following enumerations are available globally.</p>\"},\"Extensions.html\":{\"name\":\"Extensions\",\"abstract\":\"<p>The following extensions are available globally.</p>\"},\"Protocols.html\":{\"name\":\"Protocols\",\"abstract\":\"<p>The following protocols are available globally.</p>\"},\"Structs.html\":{\"name\":\"Structures\",\"abstract\":\"<p>The following structures are available globally.</p>\"},\"Typealiases.html\":{\"name\":\"Type Aliases\",\"abstract\":\"<p>The following type aliases are available globally.</p>\"}}"
  }
]