Skip to content

Commit

Permalink
Merge pull request #3 from Marfusios/Watfaq-master
Browse files Browse the repository at this point in the history
Finalize binary message support
  • Loading branch information
Marfusios authored Mar 12, 2019
2 parents 7a5b01e + bb72bdf commit 2cc8803
Show file tree
Hide file tree
Showing 10 changed files with 218 additions and 56 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ deploy:
provider: script
skip_cleanup: true
script:
- cd src/Websocket.Client && dotnet pack /p:PackageVersion=2.0.$TRAVIS_BUILD_NUMBER -c Release && cd bin/Release && dotnet nuget push **/*.2.0.$TRAVIS_BUILD_NUMBER.nupkg -k $NUGET_API_KEY -s https://api.nuget.org/v3/index.json
- cd src/Websocket.Client && dotnet pack /p:PackageVersion=3.0.$TRAVIS_BUILD_NUMBER -c Release && cd bin/Release && dotnet nuget push **/*.3.0.$TRAVIS_BUILD_NUMBER.nupkg -k $NUGET_API_KEY -s https://api.nuget.org/v3/index.json
on:
branch: master
4 changes: 2 additions & 2 deletions src/Websocket.Client/DisconnectionType.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
namespace Websocket.Client
{
/// <summary>
/// Type that specify happenend disconnection
/// Type that specify happened disconnection
/// </summary>
public enum DisconnectionType
{
Expand All @@ -16,7 +16,7 @@ public enum DisconnectionType
Lost = 1,

/// <summary>
/// Type used when connection to websocket was lost by not receiving any message in given timerange
/// Type used when connection to websocket was lost by not receiving any message in given time-range
/// </summary>
NoMessageReceived = 2,

Expand Down
13 changes: 10 additions & 3 deletions src/Websocket.Client/IWebsocketClient.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.Text;
using System.Threading.Tasks;

namespace Websocket.Client
Expand All @@ -11,14 +12,14 @@ public interface IWebsocketClient : IDisposable
/// <summary>
/// Stream with received message (raw format)
/// </summary>
IObservable<MessageType> MessageReceived { get; }
IObservable<ResponseMessage> MessageReceived { get; }
/// <summary>
/// Stream for reconnection event (trigerred after the new connection)
/// Stream for reconnection event (triggered after the new connection)
/// </summary>
IObservable<ReconnectionType> ReconnectionHappened { get; }

/// <summary>
/// Stream for disconnection event (trigerred after the connection was lost)
/// Stream for disconnection event (triggered after the connection was lost)
/// </summary>
IObservable<DisconnectionType> DisconnectionHappened { get; }

Expand Down Expand Up @@ -50,6 +51,12 @@ public interface IWebsocketClient : IDisposable
/// </summary>
bool IsRunning { get; }

/// <summary>
/// Sets used encoding for sending and receiving text messages.
/// Default is UTF8
/// </summary>
Encoding MessageEncoding { get; set; }

/// <summary>
/// Start listening to the websocket stream on the background thread
/// </summary>
Expand Down
12 changes: 0 additions & 12 deletions src/Websocket.Client/MessageType.cs

This file was deleted.

4 changes: 2 additions & 2 deletions src/Websocket.Client/ReconnectionType.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
namespace Websocket.Client
{
/// <summary>
/// Type that specify happenend reconnection
/// Type that specify happened reconnection
/// </summary>
public enum ReconnectionType
{
Expand All @@ -16,7 +16,7 @@ public enum ReconnectionType
Lost = 1,

/// <summary>
/// Type used when connection to websocket was lost by not receiving any message in given timerange
/// Type used when connection to websocket was lost by not receiving any message in given time-range
/// </summary>
NoMessageReceived = 2,

Expand Down
61 changes: 61 additions & 0 deletions src/Websocket.Client/ResponseMessage.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
using System.Net.WebSockets;

namespace Websocket.Client
{
/// <summary>
/// Received message, could be Text or Binary
/// </summary>
public class ResponseMessage
{
private ResponseMessage(byte[] binary, string text, WebSocketMessageType messageType)
{
Binary = binary;
Text = text;
MessageType = messageType;
}

/// <summary>
/// Received text message (only if type = WebSocketMessageType.Text)
/// </summary>
public string Text { get; }

/// <summary>
/// Received text message (only if type = WebSocketMessageType.Binary)
/// </summary>
public byte[] Binary { get; }

/// <summary>
/// Current message type (Text or Binary)
/// </summary>
public WebSocketMessageType MessageType { get; }

/// <summary>
/// Return string info about the message
/// </summary>
public override string ToString()
{
if (MessageType == WebSocketMessageType.Text)
{
return Text;
}

return $"Type binary, length: {Binary?.Length}";
}

/// <summary>
/// Create text response message
/// </summary>
public static ResponseMessage TextMessage(string data)
{
return new ResponseMessage(null, data, WebSocketMessageType.Text);
}

/// <summary>
/// Create binary response message
/// </summary>
public static ResponseMessage BinaryMessage(byte[] data)
{
return new ResponseMessage(data, null, WebSocketMessageType.Binary);
}
}
}
8 changes: 4 additions & 4 deletions src/Websocket.Client/Websocket.Client.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageId>Websocket.Client</PackageId>
<Version>2.0.0</Version>
<Version>3.0.0</Version>
<Authors>Mariusz Kotas</Authors>
<Description>Client for websocket API with built-in reconnection and error handling</Description>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageReleaseNotes>Release of version 2.0</PackageReleaseNotes>
<PackageReleaseNotes>Release of version 3.0</PackageReleaseNotes>
<Copyright>Copyright 2018 Mariusz Kotas. All rights reserved.</Copyright>
<PackageTags>websockets websocket client</PackageTags>
<PackageLicenseUrl>https://github.com/Marfusios/Websocket.Client/blob/master/LICENSE</PackageLicenseUrl>
Expand All @@ -17,8 +17,8 @@
<RepositoryType>Git</RepositoryType>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<FileVersion>2.0.0.0</FileVersion>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<FileVersion>3.0.0.0</FileVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
Loading

0 comments on commit 2cc8803

Please sign in to comment.