ReleaseNotes.txt 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627
  1. 1.11.0 (2019.01.21)
  2. General
  3. -[New Feature] Implemented new buffer pool mechanism to reuse internal byte arrays. This is quite a large change that touches all part of the plugin, but reduces the plugin's memory garbage production very very much! (Thanks to Teemu @ Delta Cygni Labs for the base idea and code donation!)
  4. -[New Feature] All samples are available in a public git repo too (https://github.com/Benedicht/BestHTTP_Examples)
  5. -[New Feature] Added a new IIOService interface and the plugin now uses the file system through this abstraction. New IIOService implementations can be added and set to the HTTPManager.IOService field.
  6. -[New Feature] Initial SOCKS proxy with basic authentication support added.
  7. -[Improvement] All samples now placed inside a namespace
  8. -[Improvement] Removed Unity's WWWForm option from AddField and FormUsage.
  9. -[Improvement] Updated BouncyCastle to the latest version.
  10. -[Improvement] BouncyCastle namespaces are moved under the BestHTTP.SecureProtocol namespace, custom class (like ICertificateVerifyer) are remaining under the Org.BouncyCastle.Crypto.Tls namespace. I hope this will help in cases where other plugins are bundling BC too.
  11. -[BugFix] The request will fail if the proxy-authentication is failed
  12. -[Bugfix] Caching headers set multiple times on redirection
  13. Socket.IO
  14. -[Bugfix] The plugin will not try to emit an error when the error callback throws an exception.
  15. SignalRCore
  16. -[New Feature] Added new samples
  17. -[Improvement] New OnRedirect event handler
  18. -[Bugfix] Implemented proper redirect and authentication handling.
  19. -[Bugfix] Now it can handle relative redirect urls.
  20. 1.10.10 (2018.11.04)
  21. General
  22. -[Improvement] New demo page added: https://besthttpdemosite.azurewebsites.net/
  23. -[Bugfix] One of HTTProxy's constructor didn't use a parameter to set the correct value
  24. -[Improvement] Improved connection handling and code quality for the UWP connection layer
  25. WebGL
  26. -[New Feature] Partial cookie support added (cookies are managed by the browser, but the plugin is able to read and write them)
  27. -[New Feature] Read and write cookie support added
  28. -[New Feature] HTTPRequest has a new WithCredentials property
  29. -[Improvement] More requests will be 'simple' to do not require a preflight request
  30. SignalRCore
  31. -[New Feature] Added client-sent ping messages
  32. -[Improvement] New example added
  33. WebSockets
  34. -[Improvement] Increased the limit of the per-message deflate extension's minDataLengthToCompress parameter.
  35. -[Improvement] [WebGL] Client-side generated status code of 1006 is treated as an error now to match non-webgl behavior.
  36. 1.10.9 (2018.07.05)
  37. General
  38. -[Bugfix] Fixed a compile error under WebGL
  39. -[Improvement] HTTPRequest's GetEntityBody became public api
  40. -[Improvement] Added GetFormFields to HTTPRequest
  41. 1.10.8 (2018.07.02)
  42. General
  43. -[Improvement] Greatly reduced the TCP packets that sent out for a HTTP request
  44. WebSocket
  45. -[Improvement] Frame downloading now isn't blocked while user code is executing on current completed frames
  46. SocketIO
  47. -[Bugfix] Implemented a new ToInt function instead of char.GetNumericValue as this later one throws an exception under WebGL using the new 4.x runtime
  48. SignalR Core
  49. -[Improvement] Fixed compile errors for WSA
  50. -[Improvement] Added HubOptions to be able to set more options
  51. -[Improvement] Now it's possible to skip the negotiation process and connect straigth with the (only) WebSocket protocol
  52. -[Bugfix] Authentication provider's PrepareRequest wasn't called on the negotiation request.
  53. 1.10.7 (2018.06.05)
  54. General
  55. -[Improvement] Logger will log out time infromation too
  56. -[Improvement] HTTPRequest will send a Content-Length header with zero value when there's no data to send
  57. WebSocket
  58. -[Bugfix] Fixed a case where the connection reported closed unintentionally
  59. SignalR Core
  60. -[Improvement] Added PrepareUri function to the IAuthenticationProvider interface
  61. -[Improvement] Added negotiation request. Negotiation result now stored in the NegotiationResult property.
  62. -[Improvement] Added support for 'Close' server messages
  63. -[Improvement] More documentation and code comments
  64. -[Improvement] Code cleanup
  65. 1.10.6 (2018.05.20)
  66. General
  67. -[Bugfix] Fixed a case where aborting a request throw and exception
  68. SocketIO
  69. -[Bugfix] Will not send a ping packet while waiting for a pong
  70. WebSocket
  71. -[Bugfix] OnError OnErrorDesc events not called when the websocket's State > Connecting
  72. SignalRCore
  73. -[Improvement] New BESTHTTP_DISABLE_SIGNALR_CORE symbol to disable SignalR Core
  74. -[Bugfix] The SignalR Core implementation has no dependency on SignalR classes now
  75. 1.10.5 (2018.04.17)
  76. General
  77. -[Improvement] HTTPRequest will send Content-Length header with zero value if there's no data
  78. -[Improvement] Added timing info to logging
  79. WebSocket
  80. -[Improvement] Improved error handling
  81. SignalR Core
  82. -[Improvement] Added /negotiation request and NegotiationResult property to the HubConnection
  83. -[Improvement] More code comments and logging
  84. -[Improvement] Added support for Close server messages
  85. -[Bugfix] Removed compile warnings
  86. 1.10.4 (2018.04.15)
  87. General
  88. -[Improvement] csproj files added to the package to genereate dlls
  89. -[Improvement] Improved compatibilty with other packages that are have theirs own Utility class in the root namespace.
  90. -[Improvement] Improved compatibility with the Experimental (.NET 4.6) runtime
  91. -[Improvement] Using the HTTPRequest's CustomTLSServerNameList property now it's possible to add custom SNIs
  92. -[Bugfix] Decompressor used during streaming will buffer up data if necessary to avoid a GZip exception.
  93. -[Bugfix] Removed unnecessary logging in the HTTPUpdateDelegator
  94. -[Bugfix] TLS SNIs will not be sent if the host is an IPv4 or IPv6 address
  95. -[Bugfix] Digest authentication failed with the proxy
  96. WebSocket
  97. -[Improvement] Now it's possible to close the websocket before it connects
  98. -[Improvement] New State property to access the websocket's state
  99. -[Bugfix] [WebGL] HTTPManager.Setup() isn't called when only the WebSocket protocol is used
  100. SocketIO
  101. -[Bugfix] proper pingTimeout implementation (thanks @carsanlop for the code!)
  102. SignalR
  103. -[Bugfix] It will not try to reconnect after leaving Unity's play mode.
  104. SignalR Core
  105. -[New Feature] New SignalR Core implementation for SignalRCore 1.0.0-alpha2
  106. 1.10.3 (2017.11.11)
  107. General
  108. -[Improvement] Added OPTIONS verb
  109. -[Improvement] Better compatibility with Unity 2017.2
  110. -[Bugfix] Boundary generated for multipart/form-data will be a truely unique value that shouldn't be found in the payload
  111. WebSocket
  112. -[New Feature] Added new CloseAfterNoMesssage TimeSpan property to the WebSocket class. When StartPingThread is true, the plugin will check for messages and will close the connection and emit an OnError/OnErrorDesc event after the specified time. It's not available on WebGL platform!
  113. -[New Feature] Added Latency property. When StartPingThread is true, it will calculate the latency from the Ping-Pong message round-trip times. It's not available on WebGL platform!
  114. SignalR
  115. -[Bugfix] Group token not sent with polling requests
  116. 1.10.2 (2017.07.29)
  117. General
  118. -[Bugfix] Fixed an exception when redirected
  119. 1.10.1 (2017.07.26)
  120. General
  121. -[New Feature] Added BESTHTTP_DISABLE_GZIP to be able to disable gzip Accept-Encoding requests
  122. -[Improvement] Improved compatibility when run in an Editor window
  123. -[Improvement] DNS query is done async with timeout (Thanks goes to chriser on the forums for the code)
  124. -[Bugfix] The HTTPConnection object will not close the TCP stream when the "Connection: Close" header present and the http response handler's IsClosedManually set to true.
  125. -[Bugfix] Fixed a compilation issue in RawJsonForm.cs when both BESTHTTP_DISABLE_SOCKETIO and BESTHTTP_DISABLE_SIGNALR are defined
  126. -[Bugfix] When a request's DisableChace is set to true, it will not produce a warning if caching headers added manually
  127. -[Bugfix] When there's no connection the CookieJar will not override saved cookies with an empty one
  128. Websocket
  129. -[Bugfix] Fixed an issue where receive threads are not shut down resulting in an exception
  130. Socket.IO
  131. -[Improvement] Compatibility with Socket.IO 2.0.0
  132. Server-Sent Events
  133. -[Improvement] Added WithCredentials property to the EventSource class under WebGL
  134. -[Improvement] EventSource constructor will thrown a NotSupportedException under WebGL when the underlying browser isn't supports the EventSource protocol
  135. -[Bugfix] Subscibing to a named event (On(...)) isn't worked under WebGL
  136. 1.10.0 (2017.05.05)
  137. General
  138. -Removed support for Windows Phone 8
  139. -[New Feature] HTTPManager and HTTPRequest has a new property 'TryToMinimizeTCPLatency' to turn on/off TCP NoDelay
  140. -[New Feature] A new Form type 'RawJson' to send the fields added with AddField jon encoded
  141. -[Improvement] Added DefaultCertificationValidator to the HTTPManger
  142. -[Improvement] Improved compatibility with Unity 2017.1
  143. -[Improvement] Now the plugin capable to download files larger than 2 GB (Thanks goes to Daniel @ present4D)
  144. -[Bugfix] Accessing streaming assets now possible under WebGL builds
  145. -[Bugfix] Fixed a sneaky bug where the HTTPUpdateDelegator unloaded in builds
  146. Socket.IO
  147. -[Improvement] Sockets now have an Id property generated the same as in the JS Socket.IO lib.
  148. 1.9.17 (2017.01.29)
  149. General
  150. -[New Feature] GZip content encoding is now supported when UseStreaming is on. The plugin now will automatically decompress downloaded chunks.
  151. -[Improvement] Removed .Bind() calls from the TcpClient class to remove the need of the com.apple.security.network.server permission.
  152. -[Improvement] Added support for PATCH requests
  153. -[Improvement] Improved the Clear() function of the HTTPRequest to reset more properties
  154. -[Bugfix] Sending text fields will not include additional quotes around the charset value
  155. -[Bugfix][WebGL] Fixed multiple bugs where WebGL requests are failed early
  156. WebSocket
  157. -[New Feature] Send became non-blocking, buffered up data will be sent on a thread
  158. -[New Feature] WebSocket has a new property: BufferedAmount to get the length of the unsent, buffered up data in bytes
  159. -[Improvement] Improved compatibility with Citrix
  160. 1.9.16 (2016.10.24)
  161. General
  162. -[Improvement] Using the HTTPRequest's CacheOnly property now it's possible to download a resource into the cache only. The response object's Data will not be populated in this case! (Thanks goes to Sakari for the complete patch!)
  163. -[Bugfix] Made a workaround for a mono bug where on macOS Uri created a file:// uri from a relative path instead throwing an exception.
  164. WebSocket
  165. -[Bugfix] The client sent wrong number of frames for a large frame
  166. -[Bugfix] Fixed a bug to be able to connect to Asp .NET Core hosted WebSocket servers
  167. SignalR
  168. -[Bugfix] The plugin will wait a little now before a new reconnect attempt
  169. 1.9.15 (2016.09.22)
  170. General
  171. -[Improvement] When ConnectTimeout of the HTTPManager or HTTPRequest is set to TimeSpan.Zero, no timeout logic is executed.
  172. -[Bugfix] Removed read&write timeouts as it caused issues in some cases
  173. -[Bugfix] Fixed a compile error when BESTHTTP_DISABLE_CACHING was defined
  174. 1.9.14 (2016.09.13)
  175. General
  176. -[Improvement] Added Read and Write timeouts
  177. -[Improvement] Added diagnostic logging. They will be logged when LogLevels.All is used
  178. -[Improvement] Removed a frightening warning about lock acquisition
  179. -[Improvement] Removed an additonal BinaryWriter instantiation when sending out a request
  180. -[Bugfix] Fixed a case where uris without a leading ‘/’ would fail
  181. -[Bugfix] [WebGL] Fixed url lowercase converting
  182. -[Bugfix] No exceptions should be thrown now when quitting
  183. -[Bugfix] Fixed a case where a cache entity deleted unintentionally on startup
  184. Server-Sent Event
  185. -[Bugfix] Content-Type header check was too strict
  186. 1.9.13 (2016.07.20)
  187. General
  188. -[Improvement] Default Connection idle time lowered to 20 seconds
  189. -[Bugfix] Made workaround for mono bugs around Uri encodings
  190. -[Bugfix] Cached content wasn’t refreshed (thanks goes to Jeff Mrochuk)
  191. Server-Sent Events
  192. -[Bugfix] Fixed a case where it would produce an exception when no On function is used to subscribe to an event
  193. 1.9.12 (2016.06.21)
  194. General
  195. -[Improvement] Reading a file with the file:// protocol will not result in an “Access Denied” exception on PS4 (Thanks goes to Dong-Geun Oh for reporting and sending a patch)
  196. -[Improvement] ThreadPools are used again instead of raw Threads
  197. -[Improvement] Content-Length header’s value will be used even with chunked encoding for download progress report
  198. -[Improvement] Improved thread locking
  199. -[Bugfix] Automatic retry will be done only for GET request on erro
  200. -[Bugfix] TCP connection will be closed when the request’s IsKeepAlive set to false
  201. -[Bugfix] [WebGL] OnBeforeHeaderSend will be called now properly
  202. -[Bugfix] [WebGL] Callbacks will be called now when an error occur in the XHR_Send function
  203. -[Bugfix] HTTPRequest.AddField with null encoding will work now
  204. -[Bugfix] Callback called with request’s State Processing on application quit
  205. WebSocket
  206. -[Improvement] Documentation and code changes to emphasize that WebSocket instance can’t be reused
  207. -[Improvement] Text frames will be decoded on the read thread to further minimize cpu burden on the main Unity thread
  208. SignalR
  209. -[Improvement] New BESTHTTP_SIGNALR_WITH_JSONDOTNET compile-time directive to use Newtonsoft’s JSon.NET. Using this the plugin will default to the JsonDotnetEncoder.
  210. SocketIO
  211. -[Bugfix] Fixed a case where calling Off on an event caused an exception when the server sent that event again
  212. 1.9.11 (2016.04.04)
  213. General
  214. -[Bugfix][WebGL] Fixed a case where http requests truncated under Microsoft Edge
  215. -[Bugfix] The plugin will work again in editor windows
  216. -[Bugfix] Multiple fixes around request abortion
  217. Server-Sent Events
  218. -[Bugfix] [WebGL] Newly created event sources will not use the same id(1) over and over
  219. Socket.IO
  220. -[Improvement] Rewrote handshake processing to be able to skip the polling transport
  221. -[Improvement] Now it’s possible to inform the plugin what transport it should use to connect with through the SocketOptions’ ConnectWith property
  222. -[Improvement][PollingTransport] Will not force the server to send textual packets
  223. -[Improvement][PollingTransport] Greatly improved packet parsing speed
  224. -[Bugfix] The plugin will process messages sent with the handshake data
  225. 1.9.10 (2016.03.14)
  226. General
  227. -[New Feature] Apple TvOS support added.
  228. -[New Feature] Keep-Alive header support added
  229. -[New Feature] New OnBeforeHeaderSend event added to the HTTPRequest class to be able to access and modify headers just before they are sent out.
  230. -[Improvement] Decreased memory allocations when no encoding is used in the response
  231. -[Improvement] Updated link.xml
  232. -[Improvement] The default value for UserAlternateSSL is changed to true
  233. -[Improvement] [WebGL] The WebGL connection will use the logger’s level
  234. -[Improvement] [WebGL] The plugin will handle correctly UTF16 strings (Thanks goes to Eugen and Zorrendor)
  235. -[Bugfix] [UWP] Because of a missing Flush() call, body-less requests are not sent out
  236. SignalR
  237. -[Improvement] Connection’s PingInterval is now set to public
  238. -[Bugfix] PrepareRequest doesn’t called for Ping requests
  239. WebSocket
  240. -[Bugfix] [WebGL] Fixed a bug where checking the websocket’s IsOpen status caused an error
  241. -[Bugfix] Fixed a case where assembled frames decoded with extensions twice
  242. 1.9.9 (2016.02.16)
  243. General
  244. -[Bugfix] On redirection the plugin tried to load from the cache for the wrong uri
  245. -[Bugfix] On application exit HTTPUpdateDelegator will now shut down the update thread if it’s used
  246. -[Bugfix] Cookies will be sent for protocols other than http too
  247. -[Bugfix] Empty headers will no longer sent out
  248. -[Bugfix] Null values in headers will no longer cause an exception
  249. -[Improvement] Added some missing documentation.
  250. -[Improvement] Exception logging now will include inner exceptions too
  251. WebSockets
  252. -[New Feature] Support for extensions added
  253. -[New Feature] Per-Message Deflate compression extension added
  254. Socket.IO
  255. -[Improvement] Custom errors by middlewares are now supported
  256. -[Improvement] Socket.Options’ AdditionalQueryParams changed from Dictionary to ObservableDictionary to automatically delete the cached value when it’s changed
  257. -[Bugfix] The plugin will not decode the payload for Emit callbacks
  258. SignalR
  259. -[Improvement] AdditionalQueryParams changed from Dictionary to ObservableDictionary to automatically delete the cached value when it’s changed
  260. 1.9.8 (2016.01.04)
  261. General
  262. -[Improvement] Download progress report will be more frequent now with Chunked encoding
  263. WebSockets
  264. -[Bugfix] Sending pings will not be capped on 100ms now
  265. -[Bugfix] [WebGL] Binary data sending and receiving will be handled correctly now
  266. 1.9.7 (2015.12.13)
  267. General
  268. -[Bugfix] Improved compatibility with 5.3 coroutine changes
  269. -[Improvement] Example scripts are in a namespace too
  270. 1.9.6 (2015.12.08)
  271. General
  272. -[Improvement] Changes made to greatly improve compatibility for Windows Store builds targeting IL2CPP scripting backend
  273. Socket.IO
  274. -[Improvement] The WebSocketTransport will send and Update packet to the server without any other payload to improve compatibility
  275. 1.9.5 (2015.11.30)
  276. General
  277. -[Fix] The plugin will choose the Content-Length header when Content-Range present too
  278. -[Improvement] Improved threading of HTTPUpdateDelegator
  279. WebGL
  280. -[Fix] The plugin will not try to decode the content as chunked, as the browser done it already
  281. Socket.IO
  282. -[Fix] Fixed a rare bug where WebSocket transport tried to access a null object
  283. -[Improvement] An error event will be emitted on timeout too
  284. SignalR
  285. -[Improvement] Call functions now will return true if the plugin was able to send the message to the server
  286. 1.9.4 (2015.10.16)
  287. General
  288. -[Bugfix] Fixed a possible connection error on editors running on non-windows
  289. -[Improvement] Added two more constructors to the Cookie class
  290. 1.9.3 (2015.10.10)
  291. -WebGL support added! Check out the documentation about the limitations.
  292. General
  293. -[Improvement] Improved shutdown handling in the editor
  294. -[Improvement] Cache will work on redirect uris as expected
  295. -[Bugfix] Tcp channel disconnection is now detected much quicker
  296. SignalR
  297. -[Improvement] Added support for SignalR 2.0.x
  298. -[Improvement] Improved logging in some cases
  299. WebSocket
  300. -[Bugfix] The plugin will detect a lost connection sooner
  301. 1.9.2 (2015.09.03)
  302. General
  303. -[Improvement] WP8 support is back!
  304. -[Improvement] Improved compatibility with Windows 10 Universal App build for Unity 5.2
  305. -[Improvement] Improved shutdown handling in the editor
  306. 1.9.1 (2015.08.26)
  307. General
  308. -[Improvement] Improved error reporting on WSA platforms for TcpClient
  309. -[New feature] Initial and experimental file:// protocol support
  310. Socket.IO
  311. -[Bugfix] Emitting binary data wrongly converted
  312. SignalR
  313. -[Improvement] Improved logging
  314. ServerSentEvents
  315. -[Bugfix] Improved compatibility
  316. 1.9.0 (2015.07.29)
  317. Windows Phone 8 silverlight based build support removed!
  318. General
  319. -[New Feature] Various features can be disabled now with the following defines:
  320. --+BESTHTTP_DISABLE_COOKIES
  321. --+BESTHTTP_DISABLE_CACHING
  322. --+BESTHTTP_DISABLE_SERVERSENT_EVENTS
  323. --+BESTHTTP_DISABLE_WEBSOCKET
  324. --+BESTHTTP_DISABLE_SIGNALR
  325. --+BESTHTTP_DISABLE_SOCKETIO
  326. --+BESTHTTP_DISABLE_ALTERNATE_SSL
  327. --+BESTHTTP_DISABLE_UNITY_FORM
  328. --+Check the manual on how you can set these in Unity: http://docs.unity3d.com/Manual/PlatformDependentCompilation.html
  329. -[Improvement] Removed DLL depenencies
  330. -[Improvement] Improved HTTPConnection teardown on quitting
  331. -[Improvement] Improved compatibility when used in an editor window
  332. -[Bugfix] Cookies are stored from redirections
  333. Socket.IO
  334. -[Bugfix] WebSocketTransport not switched to secure protocol when the Uri of the socket.io endpoint is HTTPS
  335. -[BugFix] Disconnect event not fired when the server initiated the disconnect (Thx go to Takayasu Oyama)
  336. SignalR
  337. -[Bugfix] WebSocketTransport not reconnected properly (Thx go to Jaakko Jumisko)
  338. 1.8.2 (2015.06.26)
  339. General
  340. -[Improvement] HTTPResponse’s DataAsTexture2D will use the full constructor now
  341. -[Bugfix] CookieJar’s SetupFolder will check for save support now
  342. -[Bugfix] Cache service deleted all files on maitenance
  343. SignalR
  344. -[Improvement] Better compatibility with JSon .NET encoder
  345. Socket.IO
  346. -[Bugfix] Fixed a case where Disconnect event fired twice
  347. -[Bugfix] First argument on Ack callbacks are removed unintentionally
  348. -[Bugfix] Fixed a case where the ‘disconnect’ event fired twice
  349. Server-Sent Events
  350. -[Improvement] Message class qualified by its namespace everywhere to prevent compile errors
  351. 1.8.1 (2015.05.26)
  352. General
  353. -[New Feature] Server-Sent Events protocol added!
  354. -[Improvement] Updated documentation
  355. -[Improvement] Changed ICertificateVerifyer interface to receive the target server’s uri for validation
  356. -[Bugfix] Fixed a case where HTTPConnections are stuck in the Initial state blocking requests in the queue
  357. Socket.IO
  358. -[Bugfix] Much simpler protocol upgrade/downgrade code to avoid a case when a poll request received by the server after a websocket upgrade
  359. SignalR
  360. -[Improvement] Can fall back to ServerSentEvents protocol
  361. 1.8.0 (2015.05.19)
  362. General
  363. -[New Feature] SignalR protocol added!
  364. -[New Feature] Samsung Smart TV support added!
  365. -[Improvement] HTTPManager has a new UseAlternateSSLDefaultValue property to change the default UseAlternateSSL value
  366. -[Improvement] Custom Cookies added to the request now will overwrite cookies that are stored in the CookieJar, instead of merging and sending both
  367. -[Improvement] Custom Cookies can be added now to the CookieJar
  368. -[Bugfix] In some case, the HTTPManager created new connections that not used after but blocked new requests
  369. -[Bugfix] Fixes a case where a HTTRequest’s State set to Finished instead of Error
  370. -[Bugfix] Fixed a case where custom cookies are not sent
  371. -[Bugfix] Aborting a finished request will not create a stuck connection
  372. WebSocket
  373. -[Improvement] Reading speed of payload data from the wire greatly improved
  374. -[Improvement] New OnErrorDesc event added. This will receive a string errorDesc param. It has a higher chance that it’s stores a meaningfull error description then the previos OnError
  375. -[Bugfix] Fixed a case when the OnError didn’t called
  376. 1.7.11 (2015.04.27)
  377. General
  378. -[Improvement] Greatly improved chache filename generation. New filenames are much-much shorter, therefore (very) long urls can be saved now too
  379. -[Bugfix] Removed unnecessary entry in the link.xml. With this change, full stripping is supported in IL2CPP builds with the .NET 2.0 Subset Api Compatibility Level (Thanks goes to Andrew Wu from Scientific Games for catching/reporting it!)
  380. -[Bugfix] Authentication headers are transformed to lowercase
  381. WebSocket
  382. -[Bugfix] Fixed a case where server sent messages get lost when received before the OnOpen event
  383. 1.7.10(2015.04.17)
  384. General
  385. -[Improvement] The plugin will choose the best supported algorithm if multiple “Proxy-Authenticate” headers are present
  386. -[Improvement] Proxy authentication is now handled for explicit https too
  387. -[Improvement] Saved some cpu cycles and GC allocs while sending a request
  388. -[Improvement] New NonTransparentForHTTPS property in the HTTPProxy class to be able to automotacally switch proxy mode for secure protocols(https://, wss://)
  389. -[Improvement] More, and more accurate logging
  390. -[Improvement] Added some missing documentation to the HTTPProxy class
  391. -[Bugfix] Proxy authentication tried to send the wrong credentials
  392. -[Bugfix] Waiting for the request to finish with a StartCoroutine is exited sooner in some cases
  393. -[Bugfix] One of the HTTPProxy constructor doesn’t set the SendWholeUri to its default value
  394. -[Bugfix] AuthenticateAsClient called with the wrong host parameter when used with a proxy
  395. -[Bugfix] HTTPConnection class now will use the request DisableRetry property, and will not retry a post request by default
  396. -[Bugfix] Fixed a case where an Error state surfaced as Finished
  397. Socket.IO:
  398. -[Improvement] More improvements around transport fallback
  399. -[Improvement] Better error logging in WebSocketTransport
  400. WebSocket:
  401. -[Improvement] If global proxy is set (HTTPManager.Proxy) it will use it as a tunnel automatically
  402. -[Improvement] Better error logging
  403. 1.7.9 (2015.04.01)
  404. [New Feature] OnBeforeRedirection callback added to HTTPRequest. It’s called before a new request is made to the new url. In this callback the redirection can be disabled, or the request can be changed.
  405. [Improvement] Updated BouncyCastle to the latest git version
  406. [Improvement] When UseAlternateSSL is true, the client will send the hostname with the TLS handshake request to greatly improve HTTPS compatibility
  407. [Improvement] More logging
  408. [Bugfix] Fixed a case, when Socket.IO does not fall back to polling when the WebSocket transport fails to connect
  409. [Bugfix] A possible NullRef exception when the request Timed Out
  410. 1.7.8 (2015.03.25)
  411. [Bugfix] Fixed compile error in UploadStream.cs
  412. [Bugfix] Fixed compile errors on WP/WSA builds when used with JSON .NET For Unity (http://u3d.as/5q2)
  413. 1.7.7 (2015.03.17)
  414. [New Feature] Socket.IO’s SocketOptions has two new property to control additional query parameters of the requests
  415. [Improvement] New UploadStream.cs in the Examples folder to help and demonstrate uploading streams
  416. [Bugfix] UploadStream upload not worked
  417. 1.7.6 (2015.03.07)
  418. [New Feature] New CustomCertificateVerifyer property to the HTTPRequest class to be able to set custom validator for the AlternateSSL handler too
  419. [Improvement] Improved Unity5 compatibility
  420. 1.7.5 (2015.03.02)
  421. [New Feature] New Priority property in the HTTPRequest class to be able prioritize queued requests
  422. [Improvement] Additional GC alloc improvements
  423. [Bugfix] Fixed a possible crash in the plugin under iOS
  424. 1.7.4 (2015.02.25)
  425. [New Feature] New UploadStream property in the HTTPRequest class
  426. [New Feature] New OnUploadProgress callback in the HTTPRequest class
  427. [Improvement] Switched from System.Action usage to properly named delegates
  428. [Improvement] Removed some GC allocs
  429. [Bugfix] Fixed an example that tried to access an internal constant
  430. 1.7.3 (2015.02.10)
  431. [Improvement] Timeout improvement
  432. [Improvement] Unity 5 compatibility fixes
  433. 1.7.2 (2015.02.09)
  434. [Improvement] Custom cookies can be added to a HTTPRequest. More on this in the documentation
  435. [Improvement] Queued requests can be aborted too
  436. [Improvement] GetGeneralStatistics function added to the HTTPManager. This function will return a GeneralStatistics struct that contains infromations about connections, cache and cookies.
  437. [Improvement] HTTPRequest’s Callback can be set to a new value after the request’s State is changed
  438. [Improvement] New code samples with a demo-browser! Check it out live here: http://bit.ly/1AkM6gi
  439. -Texture Download Sample
  440. -Asset Bundle Download Sample
  441. -Large File Download Sample
  442. -WebSocket - Echo Sample
  443. -Socket.IO - Chat Sample
  444. -Socket.IO - WePlay Sample
  445. -Cache Maintenance Sample
  446. 1.7.1 (2015.02.03)
  447. [Improvement] Greater compatibility with IL2CPP
  448. 1.7.0 (2015.01.27)
  449. General:
  450. -[Improvement] Improved cache compatibility
  451. -[Improvement] Improved proxy compatibility
  452. -[Improvement] HTTPRequest’s Send function will return the request to be able to chain some functions
  453. -[Improvement] Logger Added to the HTTPManager. Initially the Socket.IO implementation will use it.
  454. -[Improvement] HTTPManager’s MaxConnectionIdleTime lowered to 30 secs
  455. -[Improvement] HTTPRange’s ToString is overridden for quicker debugging
  456. -[Improvement] HTTPRequest’s GetRange function will no longer throw a null exception when there is no “content-range” header. It will return with null.
  457. -[Improvement] Removed uncessary exception logging in Directory platformsupport code
  458. -[Improvement] Renamed Tree class to remove Unity warning
  459. -[Bugfix] Internal buffer size for streaming set to the wrong value
  460. WebSocket changes:
  461. -[Improvement] Added some missing documentation
  462. -[Improvement] Removed the need of a new thread to send automatic pings
  463. -[Improvement] New Send function to send a portion of a byte array
  464. Socket.IO
  465. -[New Feature] Initial Socket.IO release compatible with the latest official Socket.IO implementation
  466. 1.6.4 (2015.01.13)
  467. [Bugfix] POSTs with no data now will set the correct Content-Length header
  468. [Bugfix] Parallel POSTs to the same uri will no longer block each other
  469. 1.6.3 (2014.12.22)
  470. [Improvement] A global default proxy can be set through HTTPManager.Proxy instead of setting it per-request
  471. [Improvement] Added new callback-less constructor to the HTTPRequest (thx to eedok)
  472. [Improvement] Added some documentation
  473. [Bugfix] The proper “host:port” value will be set to the “Host” header (thx to Matthew Boehlig)
  474. [Bugfix] Removed accidentally added WP8.1 dependency
  475. 1.6.2 (2014.11.19)
  476. [Improvement] Native HTTPS support in WP8 and WinRT builds
  477. [Improvement] Removed some compiler warnings in WP8/WinRT builds
  478. [Improvement] Improved proxy compatibility
  479. [Improvement] Non-transparent proxy connection response(status code, message and headers) can be accessed through the request’s ProxyResponse property
  480. [Improvements] Added “Known Bugs/Limitations” to the documentation
  481. [Bugfix] HTTPManager.MaxConnectionPerServer will be handled correctly with proxies
  482. [Bugfix] Idle free connection will be removed correctly
  483. 1.6.1 (2014.11.09)
  484. [Bugfix] WebPlayer build failed to connect to the server
  485. [Bugfix] Two HTTPRequest states(Aborted and Error) unintentionally swapped, now they are back as supposed
  486. [Bugfix] Proxy header handling improvement
  487. [Improvement] More documentation
  488. 1.6.0 (2014.11.01)
  489. [New Feature] Windows Store Apps support added
  490. [Bugfix] Minor bugfixes
  491. 1.5.1 (2014.10.21)
  492. [Improvement] Added global ConnectTimeout and RequestTimeout properties to the HTTPManager
  493. [Improvement] Added documentation about the new features
  494. [Bugfix] multipart/form-data now sends the corrent line endings
  495. 1.5.0 (2014.10.18)
  496. [Improvement] ConnectionTimeout added to the HTTPRequest class to maximize the wait time to connect to the server.
  497. [Improvement] TimeOut added to the HTTPRequest class to maximize the wait time to finish a request.
  498. [Improvement] Updated BouncyCastle.
  499. [Improvement] Rewrote the WP8 TcpClient implementation
  500. [Improvement] Custom certification validation can be added to a HTTPRequest on iOS, Android and Desktop builds by setting the CustomCertificationValidator event.
  501. [BugFix] Fixed handling of an empty form data.
  502. 1.4.3 (2014.09.01)
  503. [Bug Fix] Various bug fixes around redirection
  504. 1.4.2 (2014.09.01)
  505. [Bug Fix] Fixed a bug that intruduced in 1.4.0 that prevented a WebSocket connection to connect to the host in a WebPlayer build
  506. [Improvement] Host header can be set now without overridden by the plugin
  507. [Improvement] Improved thread safety. Now sending requests on multiple threads are safe too.
  508. 1.4.0 (2014.08.19)
  509. [BugFix] Form sending doesn’t handled correctly in some cases
  510. [Improvement] Rewrote form sending. Now correctly supports Url-Encoded and Multipart forms
  511. [New Feature] Download aborting. An ongoing download can be aborted now through a HTTPRequest object’s Abort() function
  512. [New Feature] New HTTPRequestStates enum and State property in the HTTPRequest class to be able to check the current state of the request
  513. 1.3.7 (2014.08.03)
  514. [BugFix] In some situations a WebSocket length read incorrectly
  515. [New Feature] HTTPRequest can be used with yield return
  516. [New Feature] Install script to circumvent manual folder moving
  517. [Improvement] Improved link.xml
  518. 1.3.6 (2014.06.20)
  519. [Imp] Added some more inline ducumentation
  520. [Imp] Cookie parsing improvement if Path missing
  521. [Bugfix] Digest authentication missing "opaque="
  522. 1.3.5 (2014.06.15)
  523. [Improvement] Unknown Content-Encoding will be treated as “identity”
  524. [Improvement] Better WebSocket error handling
  525. [Improvement] Actualized examples
  526. [Improvement] link.xml in the package in case of stripping error
  527. [BugFix] Fixed WebSocket big frame reading error
  528. 1.3.x (2014.05.04)
  529. [New Feature] New OnProgress event in the HTTPRequest class to be able to track the download progress.
  530. 1.3.1 (2014.04.02)
  531. [Improvement] Improved compatibility with Good ol' Sockets
  532. 1.3.0 (2014.03.30)
  533. [New Feature] Transparent and Tunnel Proxy support with untested proxy authentication
  534. [New Feature] Cookie support! It will automatically handles all cookie sending and receiving, no additional code required!
  535. [Improvement] Handling a rare case when the server doesn’t sent Content-Length header in a regular non-chunked response
  536. [Improvement] Default User-Agent added
  537. [Bugfix] WP8 - fixed a case where reading back a response failed
  538. 1.2.3 (2014.01.06)
  539. [Improvement] WebSocket - Improvements around sending large text messages
  540. 1.2.2 (2014.01.05)
  541. [Improvement] WebSocket - Fragmented messages compatibility improvement
  542. [Improvement] WebSocket - New property in the WebSocketResponse class to control the maximum size of a fragment’s payload data (MaxFragmentSize).
  543. 1.2.1: (pro only)
  544. [Improvement] Ability to handle DHE_RSA_WITH_AES_256 certificates if UseAlternateSSL is set to true on a HTTPRequest object.
  545. 1.2.0 (2013.11.05)
  546. [New Feature] WebSockets
  547. 1.1.5 (2013.10.02)
  548. [New Feature] Basic and Digest authentication support through a new Credentials property in the HTTPRequest class
  549. [Improvement] More then one redirection supported for a single request
  550. [Improvement] New MaxRedirects property in the HTTPRequest class
  551. [Improvement] New GetFirstHeaderValue(string headerName) function in the HTTPRequest class
  552. [Improvement] New optimized parsers, for now only used for parsing the authentication header
  553. [Improvement] Some code cleanup
  554. [Bugfix] In some cases after sending the request and not receiving any data caused a new reconnect
  555. [Bugfix] Some caching proxies return with float values in Max-Age header
  556. 1.1.4 (2013.09.15)
  557. [New Feature] Unity 3.5 support added.
  558. [New Feature] WebPlayer support added.
  559. [Improvement] POST request doesn't retry the request when downloading/parsing the response fails. If something goes bad, the request object's Exception property will hold the exception (as always).
  560. [Improvement] There is a new property called DisableRetry to disable resending the request if downloading/parsing the response fails. The default value is true if the request's MethodType is POST, otherwise false.
  561. [Improvement] There is new property called RawData to send data in a POST request without setting any fields. If RawData is set any field that added through AddField, AddBinaryData, SetFields to the request will be ignored.