VERSION 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. V1.8 [2021-06-02]
  2. - fix: Do not set timeouts on listener (fixes https://github.com/vis2k/Mirror/issues/2695)
  3. - fix: #104 - ReadSafely now catches ObjectDisposedException too
  4. V1.7 [2021-02-20]
  5. - ReceiveTimeout: disabled by default for cases where people use Telepathy by
  6. itself without pings etc.
  7. V1.6 [2021-02-10]
  8. - configurable ReceiveTimeout to avoid TCPs high default timeout
  9. - Server/Client receive queue limit now disconnects instead of showing a
  10. warning. this is necessary for load balancing to avoid situations where one
  11. spamming connection might fill the queue and slow down everyone else.
  12. V1.5 [2021-02-05]
  13. - fix: client data races & flaky tests fixed by creating a new client state
  14. object every time we connect. fixes data race where an old dieing thread
  15. might still try to modify the current state
  16. - fix: Client.ReceiveThreadFunction catches and ignores ObjectDisposedException
  17. which can happen if Disconnect() closes and disposes the client, while the
  18. ReceiveThread just starts up and still uses the client.
  19. - Server/Client Tick() optional enabled check for Mirror scene changing
  20. V1.4 [2021-02-03]
  21. - Server/Client.Tick: limit parameter added to process up to 'limit' messages.
  22. makes Mirror & DOTSNET transports easier to implement
  23. - stability: Server/Client send queue limit disconnects instead of showing a
  24. warning. allows for load balancing. better to kick one connection and keep
  25. the server running than slowing everything down for everyone.
  26. V1.3 [2021-02-02]
  27. - perf: ReceivePipe: byte[] pool for allocation free receives (╯°□°)╯︵ ┻━┻
  28. - fix: header buffer, payload buffer data races because they were made non
  29. static earlier. server threads would all access the same ones.
  30. => all threaded code was moved into a static ThreadFunctions class to make it
  31. 100% obvious that there should be no shared state in the future
  32. V1.2 [2021-02-02]
  33. - Client/Server Tick & OnConnected/OnData/OnDisconnected events instead of
  34. having the outside process messages via GetNextMessage. That's easier for
  35. Mirror/DOTSNET and allows for allocation free data message processing later.
  36. - MagnificientSend/RecvPipe to shield Telepathy from all the complexity
  37. - perf: SendPipe: byte[] pool for allocation free sends (╯°□°)╯︵ ┻━┻
  38. V1.1 [2021-02-01]
  39. - stability: added more tests
  40. - breaking: Server/Client.Send: ArraySegment parameter and copy internally so
  41. that Transports don't need to worry about it
  42. - perf: Buffer.BlockCopy instead of Array.Copy
  43. - perf: SendMessageBlocking puts message header directly into payload now
  44. - perf: receiveQueues use SafeQueue instead of ConcurrentQueue to avoid
  45. allocations
  46. - Common: removed static state
  47. - perf: SafeQueue.TryDequeueAll: avoid queue.ToArray() allocations. copy into a
  48. list instead.
  49. - Logger.Log/LogWarning/LogError renamed to Log.Info/Warning/Error
  50. - MaxMessageSize is now specified in constructor to prepare for pooling
  51. - flaky tests are ignored for now
  52. - smaller improvements
  53. V1.0
  54. - first stable release