46
46
< li class ="nav-group-name ">
47
47
< a class ="nav-group-name-link " href ="Guides.html "> Guides</ a >
48
48
< ul class ="nav-group-tasks ">
49
+ < li class ="nav-group-task ">
50
+ < a class ="nav-group-task-link " href ="12to13.html "> 12to13</ a >
51
+ </ li >
49
52
< li class ="nav-group-task ">
50
53
< a class ="nav-group-task-link " href ="faq.html "> FAQ</ a >
51
54
</ li >
66
69
< li class ="nav-group-task ">
67
70
< a class ="nav-group-task-link " href ="Classes/SocketAnyEvent.html "> SocketAnyEvent</ a >
68
71
</ li >
69
- < li class ="nav-group-task ">
70
- < a class ="nav-group-task-link " href ="Classes/SocketClientManager.html "> SocketClientManager</ a >
71
- </ li >
72
72
< li class ="nav-group-task ">
73
73
< a class ="nav-group-task-link " href ="Classes/SocketEngine.html "> SocketEngine</ a >
74
74
</ li >
75
75
< li class ="nav-group-task ">
76
76
< a class ="nav-group-task-link " href ="Classes/SocketIOClient.html "> SocketIOClient</ a >
77
77
</ li >
78
+ < li class ="nav-group-task ">
79
+ < a class ="nav-group-task-link " href ="Classes/SocketManager.html "> SocketManager</ a >
80
+ </ li >
78
81
</ ul >
79
82
</ li >
80
83
< li class ="nav-group-name ">
93
96
< a class ="nav-group-task-link " href ="Enums/SocketIOClientOption.html "> SocketIOClientOption</ a >
94
97
</ li >
95
98
< li class ="nav-group-task ">
96
- < a class ="nav-group-task-link " href ="Enums/SocketIOClientStatus .html "> SocketIOClientStatus </ a >
99
+ < a class ="nav-group-task-link " href ="Enums/SocketIOStatus .html "> SocketIOStatus </ a >
97
100
</ li >
98
101
< li class ="nav-group-task ">
99
102
< a class ="nav-group-task-link " href ="Enums/SocketParsableError.html "> SocketParsableError</ a >
103
106
< li class ="nav-group-name ">
104
107
< a class ="nav-group-name-link " href ="Protocols.html "> Protocols</ a >
105
108
< ul class ="nav-group-tasks ">
109
+ < li class ="nav-group-task ">
110
+ < a class ="nav-group-task-link " href ="Protocols/ConfigSettable.html "> ConfigSettable</ a >
111
+ </ li >
106
112
< li class ="nav-group-task ">
107
113
< a class ="nav-group-task-link " href ="Protocols/SocketData.html "> SocketData</ a >
108
114
</ li >
115
+ < li class ="nav-group-task ">
116
+ < a class ="nav-group-task-link " href ="Protocols/SocketDataBufferable.html "> SocketDataBufferable</ a >
117
+ </ li >
109
118
< li class ="nav-group-task ">
110
119
< a class ="nav-group-task-link " href ="Protocols/SocketEngineClient.html "> SocketEngineClient</ a >
111
120
</ li >
124
133
< li class ="nav-group-task ">
125
134
< a class ="nav-group-task-link " href ="Protocols/SocketLogger.html "> SocketLogger</ a >
126
135
</ li >
136
+ < li class ="nav-group-task ">
137
+ < a class ="nav-group-task-link " href ="Protocols/SocketManagerSpec.html "> SocketManagerSpec</ a >
138
+ </ li >
127
139
< li class ="nav-group-task ">
128
140
< a class ="nav-group-task-link " href ="Protocols/SocketParsable.html "> SocketParsable</ a >
129
141
</ li >
@@ -195,7 +207,8 @@ <h1>Classes</h1>
195
207
< h4 > Declaration</ h4 >
196
208
< div class ="language ">
197
209
< p class ="aside-title "> Swift</ p >
198
- < pre class ="highlight "> < code > < span class ="kd "> public</ span > < span class ="kd "> final</ span > < span class ="kd "> class</ span > < span class ="kt "> SocketEngine</ span > < span class ="p "> :</ span > < span class ="kt "> NSObject</ 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 > </ code > </ pre >
210
+ < pre class ="highlight "> < code > < span class ="kd "> public</ span > < span class ="kd "> final</ span > < span class ="kd "> class</ span > < span class ="kt "> SocketEngine</ span > < span class ="p "> :</ span > < span class ="kt "> NSObject</ 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 >
211
+ < span class ="kt "> < a href ="Protocols/ConfigSettable.html "> ConfigSettable</ a > </ span > </ code > </ pre >
199
212
200
213
</ div >
201
214
</ div >
@@ -319,19 +332,26 @@ <h4>Declaration</h4>
319
332
< section class ="section ">
320
333
< div class ="pointer "> </ div >
321
334
< div class ="abstract ">
322
- < p > The main class for SocketIOClientSwift .</ p >
335
+ < p > Represents a socket.io-client .</ p >
323
336
324
- < p > < strong > NOTE </ strong > : The client is not thread/queue safe, all interaction with the socket should be done on the < code > handleQueue </ code > </ p >
337
+ < 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 >
325
338
326
- < p > Represents a socket.io-client. Most interaction with socket.io will be through this class.</ p >
339
+ < p > For example:</ p >
340
+ < pre class ="highlight swift "> < code > < span class ="c1 "> // Create a socket for the /swift namespace</ span >
341
+ < 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 >
342
+
343
+ < span class ="c1 "> // Add some handlers and connect</ span >
344
+ </ code > </ pre >
345
+
346
+ < 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 >
327
347
328
348
< a href ="Classes/SocketIOClient.html " class ="slightly-smaller "> See more</ a >
329
349
</ div >
330
350
< div class ="declaration ">
331
351
< h4 > Declaration</ h4 >
332
352
< div class ="language ">
333
353
< p class ="aside-title "> Swift</ p >
334
- < pre class ="highlight "> < code > < span class ="n "> 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 > < span class =" p " > , </ span > < span class =" kt " > < a href =" Protocols/SocketEngineClient.html " > SocketEngineClient </ a > </ span > < span class =" p " > , </ span > < span class =" kt " > < a href =" Protocols/SocketParsable.html " > SocketParsable </ a > </ span > < /code > </ pre >
354
+ < pre class ="highlight "> < code > < span class ="n "> 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 >
335
355
336
356
</ div >
337
357
</ div >
@@ -377,40 +397,41 @@ <h4>Declaration</h4>
377
397
< li class ="item ">
378
398
< div >
379
399
< code >
380
- < a name ="/c:@M@SocketIO@objc(cs)SocketClientManager "> </ a >
381
- < a name ="//apple_ref/swift/Class/SocketClientManager " class ="dashAnchor "> </ a >
382
- < a class ="token " href ="#/c:@M@SocketIO@objc(cs)SocketClientManager " > SocketClientManager </ a >
400
+ < a name ="/c:@M@SocketIO@objc(cs)SocketManager "> </ a >
401
+ < a name ="//apple_ref/swift/Class/SocketManager " class ="dashAnchor "> </ a >
402
+ < a class ="token " href ="#/c:@M@SocketIO@objc(cs)SocketManager " > SocketManager </ a >
383
403
</ code >
384
404
</ div >
385
405
< div class ="height-container ">
386
406
< div class ="pointer-container "> </ div >
387
407
< section class ="section ">
388
408
< div class ="pointer "> </ div >
389
409
< div class ="abstract ">
390
- < p > Experimental socket manager.</ p >
391
-
392
- < p > API subject to change.</ p >
410
+ < p > A manager for a socket.io connection.</ p >
393
411
394
- < p > Can be used to persist sockets across ViewControllers .</ p >
412
+ < p > A < code > SocketManager </ code > is responsible for multiplexing multiple namespaces through a single < code > < a href =" Protocols/SocketEngineSpec.html " > SocketEngineSpec </ a > </ code > .</ p >
395
413
396
- < p > Sockets are strongly stored, so be sure to remove them once they are no
397
- longer needed.</ p >
414
+ < p > Example:</ p >
415
+ < 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 >
416
+ < 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 >
417
+ < 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 >
398
418
399
- < p > Example usage:</ p >
400
- < pre class ="highlight plaintext "> < code > let manager = SocketClientManager.sharedManager
401
- manager["room1"] = socket1
402
- manager["room2"] = socket2
403
- manager.removeSocket(socket: socket2)
404
- manager["room1"]?.emit("hello")
419
+ < span class ="c1 "> // defaultNamespaceSocket and swiftSocket both share a single connection to the server</ span >
405
420
</ code > </ pre >
406
421
407
- < a href ="Classes/SocketClientManager.html " class ="slightly-smaller "> See more</ a >
422
+ < p > Sockets created through the manager are retained by the manager. So at the very least, a single strong reference
423
+ to the manager must be maintained to keep sockets alive.</ p >
424
+
425
+ < p > To disconnect a socket and remove it from the manager, either call < code > < a href ="Classes/SocketIOClient.html#/c:@M@SocketIO@objc(cs)SocketIOClient(im)disconnect "> SocketIOClient.disconnect()</ a > </ code > on the socket,
426
+ or call one of the < code > disconnectSocket</ code > methods on this class.</ p >
427
+
428
+ < a href ="Classes/SocketManager.html " class ="slightly-smaller "> See more</ a >
408
429
</ div >
409
430
< div class ="declaration ">
410
431
< h4 > Declaration</ h4 >
411
432
< div class ="language ">
412
433
< p class ="aside-title "> Swift</ p >
413
- < 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 >
434
+ < pre class ="highlight "> < code > < span class ="n "> 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 >
414
435
415
436
</ div >
416
437
</ div >
@@ -425,8 +446,8 @@ <h4>Declaration</h4>
425
446
</ article >
426
447
</ div >
427
448
< section class ="footer ">
428
- < p > © 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 >
429
- < 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 >
449
+ < p > © 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-11-12 )</ p >
450
+ < p > Generated by < a class ="link " href ="https://github.com/realm/jazzy " target ="_blank " rel ="external "> jazzy ♪♫ v0.9.0 </ a > , a < a class ="link " href ="http://realm.io " target ="_blank " rel ="external "> Realm</ a > project.</ p >
430
451
</ section >
431
452
</ body >
432
453
</ div >
0 commit comments