@@ -41,7 +41,7 @@ internal class PNUnityWebRequest: MonoBehaviour
41
41
#endregion
42
42
43
43
public const float timerConst = 0 ;
44
- public float timer = timerConst ;
44
+ public float timer = timerConst ;
45
45
46
46
readonly SafeDictionary < string , UnityWebRequestWrapper > currentWebRequests = new SafeDictionary < string , UnityWebRequestWrapper > ( ) ;
47
47
@@ -175,31 +175,37 @@ string GenerateAndValidateWebRequestId(){
175
175
}
176
176
}
177
177
178
- public void CleanUp ( ) {
179
- //TODO Abort All
178
+ public void CleanUp ( string key ) {
179
+ currentWebRequests . TryGetValue ( key , out var req ) ;
180
+ if ( ! ( req is null ) ) {
181
+ req . CurrentUnityWebRequest . Dispose ( ) ;
182
+ }
180
183
}
181
184
182
185
public void AbortRequest ( string webRequestId , bool fireEvent ) {
183
186
try {
184
187
UnityWebRequestWrapper unityWebRequestWrapper ;
185
- if ( currentWebRequests . TryGetValue ( webRequestId , out unityWebRequestWrapper ) ) {
186
- if ( unityWebRequestWrapper != null ) {
188
+ if ( currentWebRequests . TryGetValue ( webRequestId , out unityWebRequestWrapper ) ) {
189
+ if ( unityWebRequestWrapper != null ) {
187
190
StopTimeoutsAndComplete ( unityWebRequestWrapper , webRequestId , false ) ;
188
191
189
- if ( ( unityWebRequestWrapper . CurrentUnityWebRequest != null ) && ( ! unityWebRequestWrapper . CurrentUnityWebRequest . isDone ) ) {
192
+ if ( ( unityWebRequestWrapper . CurrentUnityWebRequest != null ) &&
193
+ ( ! unityWebRequestWrapper . CurrentUnityWebRequest . isDone ) ) {
190
194
unityWebRequestWrapper . CurrentUnityWebRequest . Abort ( ) ;
191
195
unityWebRequestWrapper . CurrentUnityWebRequest . Dispose ( ) ;
192
196
}
197
+
193
198
currentWebRequests . Remove ( webRequestId ) ;
194
199
unityWebRequestWrapper . CurrentRequestState . ResponseCode = 0 ;
195
- unityWebRequestWrapper . CurrentRequestState . URL = unityWebRequestWrapper . URL ;
196
- if ( fireEvent ) {
197
- FireEvent ( "Aborted" , true , false , unityWebRequestWrapper . CurrentRequestState , unityWebRequestWrapper . CurrentRequestType , webRequestId ) ;
200
+ unityWebRequestWrapper . CurrentRequestState . URL = unityWebRequestWrapper . URL ;
201
+ if ( fireEvent ) {
202
+ FireEvent ( "Aborted" , true , false , unityWebRequestWrapper . CurrentRequestState ,
203
+ unityWebRequestWrapper . CurrentRequestType , webRequestId ) ;
198
204
#if ( ENABLE_PUBNUB_LOGGING )
199
205
this . PNLog . WriteToLog ( string . Format ( "BounceRequest: event fired {0}" , unityWebRequestWrapper . CurrentRequestState . ToString ( ) ) , PNLoggingMethod . LevelInfo ) ;
200
206
#endif
201
207
}
202
- #if ( ENABLE_PUBNUB_LOGGING )
208
+ #if ( ENABLE_PUBNUB_LOGGING )
203
209
else {
204
210
this . PNLog . WriteToLog ( string . Format ( "BounceRequest: event NOT fired {0}" , unityWebRequestWrapper . CurrentRequestState . ToString ( ) ) , PNLoggingMethod . LevelInfo ) ;
205
211
}
@@ -326,73 +332,77 @@ internal void StartWebRequests(UnityWebRequestWrapper unityWebRequestWrapper, st
326
332
public void ProcessResponse ( UnityWebRequestWrapper unityWebRequestWrapper , string key )
327
333
{
328
334
try {
329
-
335
+
330
336
#if ( ENABLE_PUBNUB_LOGGING )
331
337
this . PNLog . WriteToLog ( string . Format ( "ProcessResponse: Process Request {0}, url: {1}, OPType: {2}" , unityWebRequestWrapper . CurrentRequestType . ToString ( ) , unityWebRequestWrapper . URL , unityWebRequestWrapper . CurrentRequestState . OperationType ) , PNLoggingMethod . LevelInfo ) ;
332
338
#endif
333
339
334
340
if ( unityWebRequestWrapper . CurrentUnityWebRequest != null ) {
335
341
string message = "" ;
336
342
bool isError = false ;
337
- if ( unityWebRequestWrapper . CurrentUnityWebRequest . downloadHandler != null ) {
343
+ if ( unityWebRequestWrapper . CurrentUnityWebRequest . downloadHandler != null ) {
338
344
message = unityWebRequestWrapper . CurrentUnityWebRequest . downloadHandler . text ;
339
345
}
340
346
341
347
#if ( ENABLE_PUBNUB_LOGGING )
342
348
this . PNLog . WriteToLog ( string . Format ( "ProcessResponse: unityWebRequestWrapper.CurrentUnityWebRequest.isNetworkError {0}\n unityWebRequestWrapper.CurrentUnityWebRequest.isHttpError {1}" , unityWebRequestWrapper . CurrentUnityWebRequest . isNetworkError , unityWebRequestWrapper . CurrentUnityWebRequest . isHttpError ) , PNLoggingMethod . LevelInfo ) ;
343
349
#endif
344
350
345
- #if ( NETFX_CORE )
351
+ #if ( NETFX_CORE )
346
352
#if ( ENABLE_PUBNUB_LOGGING )
347
353
this . PNLog . WriteToLog ( string . Format ( "ProcessResponse: WWW Sub NETFX_CORE {0}\n Message: {1}\n URL: {2}" , unityWebRequestWrapper . CurrentRequestType . ToString ( ) , unityWebRequestWrapper . CurrentUnityWebRequest . error , unityWebRequestWrapper . URL ) , PNLoggingMethod . LevelInfo ) ;
348
354
#endif
349
355
if ( ! string . IsNullOrEmpty ( unityWebRequestWrapper . CurrentUnityWebRequest . error ) ) {
350
- message = string . Format ( "{0}\" Error\" : \" {1}\" , \" Description\" : {2}{3}" , "{" , unityWebRequestWrapper . CurrentUnityWebRequest . error , message , "}" ) ;
356
+ message =
357
+ string . Format ( "{0}\" Error\" : \" {1}\" , \" Description\" : {2}{3}" , "{" , unityWebRequestWrapper . CurrentUnityWebRequest . error , message , "}" ) ;
351
358
isError = true ;
352
359
}
353
- #else
354
- if ( ( ! unityWebRequestWrapper . CurrentUnityWebRequest . isNetworkError )
355
- && ( ! unityWebRequestWrapper . CurrentUnityWebRequest . isHttpError ) )
356
- {
357
- #if ( ENABLE_PUBNUB_LOGGING )
360
+ #else
361
+ if ( ( ! unityWebRequestWrapper . CurrentUnityWebRequest . isNetworkError )
362
+ && ( ! unityWebRequestWrapper . CurrentUnityWebRequest . isHttpError ) ) {
363
+ #if ( ENABLE_PUBNUB_LOGGING )
358
364
this . PNLog . WriteToLog ( string . Format ( "ProcessResponse: WWW Sub {0}\n Message: {1}\n URL: {2}" , unityWebRequestWrapper . CurrentRequestType . ToString ( ) , unityWebRequestWrapper . CurrentUnityWebRequest . error , unityWebRequestWrapper . URL ) , PNLoggingMethod . LevelInfo ) ;
359
- #endif
365
+ #endif
360
366
isError = false ;
361
-
367
+
362
368
} else {
363
- #if ( ENABLE_PUBNUB_LOGGING )
369
+ #if ( ENABLE_PUBNUB_LOGGING )
364
370
this . PNLog . WriteToLog ( string . Format ( "ProcessResponse: WWW Sub {0}\n Error: {1},\n text: {2}\n URL: {3}" , unityWebRequestWrapper . CurrentRequestType . ToString ( ) , unityWebRequestWrapper . CurrentUnityWebRequest . error , message , unityWebRequestWrapper . URL ) , PNLoggingMethod . LevelInfo ) ;
365
- #endif
366
- message = string . Format ( "{0}\" Error\" : \" {1}\" , \" Description\" : {2}{3}" , "{" , unityWebRequestWrapper . CurrentUnityWebRequest . error , message , "}" ) ;
371
+ #endif
372
+ message = string . Format ( "{0}\" Error\" : \" {1}\" , \" Description\" : {2}{3}" , "{" ,
373
+ unityWebRequestWrapper . CurrentUnityWebRequest . error , message , "}" ) ;
367
374
isError = true ;
368
375
}
369
- #endif
376
+ #endif
370
377
#if ( ENABLE_PUBNUB_LOGGING )
371
378
this . PNLog . WriteToLog ( string . Format ( "message: {0}" , message ) , PNLoggingMethod . LevelInfo ) ;
372
379
#endif
373
380
374
381
if ( unityWebRequestWrapper . CurrentRequestState != null ) {
375
382
unityWebRequestWrapper . CurrentRequestState . EndRequestTicks = DateTime . UtcNow . Ticks ;
376
- unityWebRequestWrapper . CurrentRequestState . ResponseCode = unityWebRequestWrapper . CurrentUnityWebRequest . responseCode ;
377
- unityWebRequestWrapper . CurrentRequestState . URL = unityWebRequestWrapper . CurrentUnityWebRequest . url ;
383
+ unityWebRequestWrapper . CurrentRequestState . ResponseCode =
384
+ unityWebRequestWrapper . CurrentUnityWebRequest . responseCode ;
385
+ unityWebRequestWrapper . CurrentRequestState . URL =
386
+ unityWebRequestWrapper . CurrentUnityWebRequest . url ;
378
387
379
388
#if ( ENABLE_PUBNUB_LOGGING )
380
389
this . PNLog . WriteToLog ( string . Format ( "ProcessResponse: WWW Sub request2 {0} \n {1} \n responseCode: {2}" , unityWebRequestWrapper . CurrentRequestState . OperationType , unityWebRequestWrapper . CurrentRequestType , unityWebRequestWrapper . CurrentRequestState . ResponseCode ) , PNLoggingMethod . LevelInfo ) ;
381
390
#endif
382
- }
391
+ }
383
392
#if ( ENABLE_PUBNUB_LOGGING )
384
393
else {
385
394
this . PNLog . WriteToLog ( string . Format ( "ProcessResponse: WWW Sub request null2" ) , PNLoggingMethod . LevelInfo ) ;
386
395
}
387
- this . PNLog . WriteToLog ( "BEFORE FireEvent" , PNLoggingMethod . LevelInfo ) ;
396
+ this . PNLog . WriteToLog ( "BEFORE FireEvent" , PNLoggingMethod . LevelInfo ) ;
388
397
#endif
389
- FireEvent ( message , isError , false , unityWebRequestWrapper . CurrentRequestState , unityWebRequestWrapper . CurrentRequestType , key ) ;
390
- }
398
+ FireEvent ( message , isError , false , unityWebRequestWrapper . CurrentRequestState ,
399
+ unityWebRequestWrapper . CurrentRequestType , key ) ;
400
+ }
391
401
} catch ( PubNubUserException ex ) {
392
402
#if ( ENABLE_PUBNUB_LOGGING )
393
403
this . PNLog . WriteToLog ( string . Format ( "ProcessResponse: PubNubUserException: Exception={0}" , ex . ToString ( ) ) , PNLoggingMethod . LevelError ) ;
394
404
#endif
395
- throw ;
405
+ throw ;
396
406
} catch ( Exception ex ) {
397
407
#if ( ENABLE_PUBNUB_LOGGING )
398
408
this . PNLog . WriteToLog ( string . Format ( "ProcessResponse: RunWebRequestSub {0}, Exception: {1}" , unityWebRequestWrapper . CurrentRequestType . ToString ( ) , ex . ToString ( ) ) , PNLoggingMethod . LevelError ) ;
@@ -408,12 +418,14 @@ public void ProcessTimeout (UnityWebRequestWrapper unityWebRequestWrapper, strin
408
418
this . PNLog . WriteToLog ( string . Format ( "ProcessTimeout: {0}" , unityWebRequestWrapper . CurrentRequestType . ToString ( ) ) , PNLoggingMethod . LevelInfo ) ;
409
419
#endif
410
420
411
- if ( ! isComplete ) {
421
+ if ( ! isComplete ) {
412
422
AbortRequest ( key , false ) ;
413
423
}
424
+
414
425
unityWebRequestWrapper . CurrentRequestState . ResponseCode = 0 ;
415
426
unityWebRequestWrapper . CurrentRequestState . URL = unityWebRequestWrapper . URL ;
416
- FireEvent ( "Timed out" , true , true , unityWebRequestWrapper . CurrentRequestState , unityWebRequestWrapper . CurrentRequestType , key ) ;
427
+ FireEvent ( "Timed out" , true , true , unityWebRequestWrapper . CurrentRequestState ,
428
+ unityWebRequestWrapper . CurrentRequestType , key ) ;
417
429
#if ( ENABLE_PUBNUB_LOGGING )
418
430
this . PNLog . WriteToLog ( string . Format ( "ProcessTimeout: WWW Error: {0} sec timeout" , unityWebRequestWrapper . Timeout . ToString ( ) ) , PNLoggingMethod . LevelInfo ) ;
419
431
#endif
@@ -442,8 +454,10 @@ public void FireEvent (string message, bool isError, bool isTimeout, RequestStat
442
454
#endif
443
455
444
456
WebRequestComplete . Raise ( this , cea ) ;
457
+
458
+ CleanUp ( key ) ;
459
+
445
460
currentWebRequests . Remove ( key ) ;
446
-
447
461
}
448
462
}
449
463
0 commit comments