Merge branch 'develop' into Fix_Bug33

This commit is contained in:
Christian
2017-09-09 23:17:41 +02:00
committed by GitHub
28 changed files with 449 additions and 176 deletions
@@ -8,20 +8,15 @@ using System.Threading.Tasks;
namespace MQTTnet.Implementations
{
public sealed class MqttWebSocketsChannel : IMqttCommunicationChannel, IDisposable
public sealed class MqttWebSocketChannel : IMqttCommunicationChannel, IDisposable
{
private ClientWebSocket _webSocket;
private ClientWebSocket _webSocket = new ClientWebSocket();
private const int BufferSize = 4096;
private const int BufferAmplifier = 20;
private readonly byte[] WebSocketBuffer = new byte[BufferSize * BufferAmplifier];
private int WebSocketBufferSize;
private int WebSocketBufferOffset;
public MqttWebSocketsChannel()
{
_webSocket = new ClientWebSocket();
}
public async Task ConnectAsync(MqttClientOptions options)
{
_webSocket = null;
@@ -45,10 +40,7 @@ namespace MQTTnet.Implementations
public void Dispose()
{
if (_webSocket != null)
{
_webSocket.Dispose();
}
_webSocket?.Dispose();
}
public Task ReadAsync(byte[] buffer)
@@ -70,8 +62,7 @@ namespace MQTTnet.Implementations
WebSocketReceiveResult response;
do
{
response =
await _webSocket.ReceiveAsync(new ArraySegment<byte>(temporaryBuffer), CancellationToken.None);
response = await _webSocket.ReceiveAsync(new ArraySegment<byte>(temporaryBuffer), CancellationToken.None);
temporaryBuffer.CopyTo(WebSocketBuffer, offset);
offset += response.Count;
@@ -4,8 +4,8 @@
<TargetFramework>netstandard1.3</TargetFramework>
<AssemblyName>MQTTnet</AssemblyName>
<RootNamespace>MQTTnet</RootNamespace>
<AssemblyVersion>2.2.1.0</AssemblyVersion>
<FileVersion>2.2.1.0</FileVersion>
<AssemblyVersion>2.3.0.0</AssemblyVersion>
<FileVersion>2.3.0.0</FileVersion>
<Version>0.0.0.0</Version>
<Company />
<Product />
@@ -22,15 +22,15 @@ namespace MQTTnet
{
switch (options.ConnectionType)
{
case ConnectionTypes.TCP:
case ConnectionTypes.TLS:
case MqttConnectionType.Tcp:
case MqttConnectionType.Tls:
return new MqttTcpChannel();
case ConnectionTypes.WS:
case ConnectionTypes.WSS:
return new MqttWebSocketsChannel();
case MqttConnectionType.Ws:
case MqttConnectionType.Wss:
return new MqttWebSocketChannel();
default:
return null;
throw new NotSupportedException();
}
}
}