Releases: needle-mirror/com.unity.transport
0.8.0-preview.8
[0.8.0] - 2021-03-23
New features
- Added overloads of
PopEvent
andPopEventForConnection
which return the pipeline used as an out parameter.
Changes
Fixes
- Fixed some compatility issues with tiny.
- Fixed a crash when sending messages slightly less than one MTU using the fragmentation pipeline.
- Fixed a bug causing
NetworkDriver.RemoteEndPoint
to return an invalid value when using the default network interface.
Upgrade guide
[0.7.0] - 2021-02-05
New features
- Added
DataStreamWriter.WriteRawbits
andDataStreamWriter.ReadRawBits
for reading and writing raw bits from a data stream.
Changes
- Optimized the
NetworkCompressionModel
to find buckets in constant time. - Changed the error behavior of
DataStreamReader
to be consistent between the editor and players.
Fixes
- Fixed a crash when receiving a packet with an invalid pipeline identifier
Upgrade guide
[0.6.0] - 2020-11-26
New features
- An error handling pass has been made and
Error.StatusCode
have been added to indicate more specific errors. Error.DisconnectReason
has been added, so when NetworkDriver.PopEvent returns aNetworkEvent.Type.Disconnect
the reader returned contains 1 byte of data indicating the reason.
Changes
- The function signature for NetworkDriver.BeginSend has changed. It now returns a
int
value indicating if the function succeeded or not and the DataStreamWriter now instead is returned as aout
parameter. - The function signature for INetworkInterface.Initialize has changed. It now requires you to return a
int
value indicating if the function succeeded or not. - The function signature for INetworkInterface.CreateInterfaceEndPoint has changed. It now requires you to return a
int
value indicating if the function succeeded or not, and NetworkInterfaceEndPoint is now returned as aout
parameter.
Fixes
- Fixed a potential crash when receiving a malformated packet.
- Fixed an issue where the DataStream could sometimes fail writing packet uints before the buffer was full.
Upgrade guide
NetworkDriver.BeginSend
now returns aint
indicating aError.StatusCode
, and theDataStreamWriter
is passed as anout
parameter.
0.6.0-preview.7
[0.6.0] - 2020-11-26
New features
- An error handling pass has been made and
Error.StatusCode
have been added to indicate more specific errors. Error.DisconnectReason
has been added, so when NetworkDriver.PopEvent returns aNetworkEvent.Type.Disconnect
the reader returned contains 1 byte of data indicating the reason.
Changes
- The function signature for NetworkDriver.BeginSend has changed. It now returns a
int
value indicating if the function succeeded or not and the DataStreamWriter now instead is returned as aout
parameter. - The function signature for INetworkInterface.Initialize has changed. It now requires you to return a
int
value indicating if the function succeeded or not. - The function signature for INetworkInterface.CreateInterfaceEndPoint has changed. It now requires you to return a
int
value indicating if the function succeeded or not, and NetworkInterfaceEndPoint is now returned as aout
parameter.
Fixes
- Fixed a potential crash when receiving a malformated packet.
- Fixed an issue where the DataStream could sometimes fail writing packet uints before the buffer was full.
Upgrade guide
NetworkDriver.BeginSend
now returns aint
indicating aError.StatusCode
, and theDataStreamWriter
is passed as anout
parameter.
[0.5.0] - 2020-10-01
New features
Changes
Fixes
- Fixed display of ipv6 addresses as strings
Upgrade guide
0.5.0-preview.5
[0.5.0] - 2020-10-01
New features
Changes
Fixes
- Fixed display of ipv6 addresses as strings
Upgrade guide
[0.4.1] - 2020-09-10
New features
- Added
NetworkDriver.GetEventQueueSizeForConnection
which allows you to check how many pending events a connection has.
Changes
Fixes
- Fixed a compatibility isue with DOTS Runetime.
Upgrade guide
0.4.1-preview.1
[0.4.1] - 2020-09-10
New features
- Added
NetworkDriver.GetEventQueueSizeForConnection
which allows you to check how many pending events a connection has.
Changes
Fixes
- Fixed a compatibility isue with DOTS Runetime.
Upgrade guide
0.4.0-preview.3
[0.4.0-preview.3] - 2020-08-21
New features
- Added a new fragmentation pipeline which allows you to send messages larger than one MTU. If the
FragmentationPipelineStage
is part of the pipeline you are trying to send with theNetworkDriver
will allow arequiredPayloadSize
larger than one MTU to be specified and split the message into multiple packages.
Changes
- The methods to read and write strings in the
DataStreamReader
/DataStreamWriter
have been changed to useFixedString<N>
instead ofNativeString<N>
. The name of the methods have also changed fromReadString
toReadFixedString64
- and similar changes for write and the packed version of the calls. The calls supportFixedString32
,FixedString64
,FixedString128
,FixedString512
andFixedString4096
. - Minimum required unity version has changed to 2020.1.2.
Fixes
Upgrade guide
The data stream methods for reading and writing strings have changed, they now take FixedString64
instead of NativeString64
and the names have changed as follows: DataStreamReader.ReadString
-> DataStreamReader.ReadFixedString64
, DataStreamReader.ReadPackedStringDelta
-> DataStreamReader.ReadPackedFixedString64Delta
, DataStreamWriter.WriteString
-> DataStreamWriter.WriteFixedString64
, DataStreamWriter.WritePackedStringDelta
-> DataStreamWriter.WritePackedFixedString64Delta
.
The transport now requires Unity 2020.1.2.
0.3.1-preview.4
[0.3.1-preview.4] - 2020-06-05
New features
Changes
- Added a new
requiredPayloadSize
parameter toBeginSend
. The required size cannot be larger thanNetworkParameterConstants.MTU
. - Added errorcode parameter to a
network_set_nonblocking
,network_set_send_buffer_size
andnetwork_set_receive_buffer_size
inNativeBindings
. - Additional APIs added to
NativeBindings
:network_set_blocking
,network_get_send_buffer_size
,network_get_receive_buffer_size
,network_set_receive_timeout
,network_set_send_timeout
. - Implemented
NetworkEndPoint.AddressAsString
.
Fixes
- Fixed an issue in the reliable pipeline which would cause it to not recover if one end did not receive packages for a while.
- Fixed
NetworkInterfaceEndPoint
andNetworkEndPoint
GetHashCode
implementation. - Fixed invalid use of strings when specifying the size of socket buffers in the native bindings
Upgrade guide
0.2.4-preview.0
[0.2.4-preview.0] - 2020-02-28
Fixes
- Fixed an issue in the reliable pipeline which would cause it to not recover if one end did not receive packages for a while.
0.3.0-preview.6
[0.3.0-preview.6] - 2020-02-24
New features
Changes
- Pipelines are now registered by calling
NetworkPipelineStageCollection.RegisterPipelineStage
before creating aNetworkDriver
. The built-in pipelines do not require explicit registration. The interface for implementing pipelines has been changed to support this. - NetworkDriver is no longer a generic type. You pass it an interface when creating the
NetworkDriver
, which means you can switch between backends without modifying all usage of the driver. There is a newNetworkDriver.Create
which creates a driver with the defaultNetworkInterface
. It is also possible to create anew NetworkDriver
by passing aNetworkInterface
instance as the first argument. NetworkDriver.Send
is replaced byBeginSend
andEndSend
. This allows us to do less data copying when sending messages. The interface for implementing new netowrk interfaces has been changed to support this.DataStreamReader
andDataStreamWriter
no longer owns any memory. They are just reading/writing the data of aNativeArray<byte>
.DataStreamWriter
has explicit types for all Write methods.DataStreamReader.Context
has been removed.- Error handling for
DataStreamWriter
has been improved, on failure it returns false and setsDataStreamWriter.HasFailedWrites
to true.DataStreamReader
returns a default value and setsDataStreamReader.HasFailedReads
to true.DataStreamReader
will throw an excpetion instead of returning a default value in the editor. - IPCManager is no longer public, it is still possible to create a
NetworkDriver
with aIPCNetworkInterface
. - Added
NetworkDriver.ScheduleFlushSend
which must be called to guarantee that messages are send before next call toNetworkDriver.ScheduleUpdate
. - Added
NetworkDriver.LastUpdateTime
to get the update time theNetworkDriver
used for the most recent update. - Removed the IPC address family, use a IPv4 localhost address instead.
Fixes
- Fixed a memory overflow in the reliability pipeline.
- Made the soaker report locale independent.
Upgrade guide
Creation and type of NetworkDriver
has changed, use NetworkDriver.Create
or pass an instance of a NetworkInterface
to the NetworkDriver
constructor.
NetworkDriver.Send
has been replaced by a pair of NetworkDriver.BeginSend
and NetworkDriver.EndSend
. Calling BeginSend
will return a DataStreamWriter
to which you write the data. The DataStreamWriter
is then passed to EndSend
.
All write calls in DataStreamWriter
need an explicit type, for example Write(0)
should be replaced by WriteInt(0)
.
DataStreamWriter
no longer shares current position between copies, if you call a method which writes you must pass it by ref for the modifications to apply.
DataStreamWriter
no longer returns a DeferedWriter, you need to take a copy of the writer at the point you want to make modifications and use the copy to overwrite data later.
DataStreamWriter
is no longer disposable. If you use the allocating constructor you need to use Allocator.Temp
, if you pass a NativeArray<byte>
to the constructor the NativeArray
owns the memory.
DataStreamReader.Context
no longer exists, you need to pass the DataStreamReader
itself by ref if you read in a different function.
The interface for network pipelines has been changed.
The interface for network interfaces has been changed.
0.2.3-preview.0
[0.2.3-preview.0] - 2019-12-12
New features
Changes
- Added reading and write methods for NativeString64 to DataStream.
Fixes
Upgrade guide
0.2.2-preview.2
[0.2.2-preview.2] - 2019-12-05
New features
Changes
- Added a stress test for parallel sending of data.
- Upgraded collections to 0.3.0.
Fixes
- Fixed a race condition in IPCNetworkInterface.
- Changed NetworkEventQueue to use UnsafeList to get some type safety.
- Fixed an out-of-bounds access in the reliable sequenced pipeline.
- Fixed spelling and broken links in the documentation.