Skip to content

Commit

Permalink
Merge pull request #36 from mhelvacikoylu/v2
Browse files Browse the repository at this point in the history
2.3.12
  • Loading branch information
mhelvacikoylu committed Jan 13, 2020
2 parents afb65ab + 14bfcad commit 89b822a
Show file tree
Hide file tree
Showing 34 changed files with 111 additions and 168 deletions.
2 changes: 1 addition & 1 deletion src/Samples/Sample.WebSocket.Server/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ static void Main(string[] args)
ServerWsHandler handler = new ServerWsHandler();
TwinoServer server = new TwinoServer(new ServerOptions
{
PingInterval = 8,
PingInterval = 15,
Hosts = new List<HostOptions>
{
new HostOptions
Expand Down
6 changes: 3 additions & 3 deletions src/Twino.Client.Connectors/Twino.Client.Connectors.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Client.Connectors</Product>
<Description>Connectors for twino WebSocket and TMQ protocols</Description>
<PackageTags>twino,server,client,connector,websocket,tmq</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
6 changes: 3 additions & 3 deletions src/Twino.Client.TMQ/Twino.Client.TMQ.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Client.TMQ</Product>
<Description>Twino Messaging Queue Client to connect all TMQ Servers</Description>
<PackageTags>twino,tmq,client,mq,messaging,queue</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
6 changes: 3 additions & 3 deletions src/Twino.Client.WebSocket/Twino.Client.WebSocket.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Client.WebSocket</Product>
<Description>Twino WebSocket Client to connect all WebSocket servers</Description>
<PackageTags>twino,websocket,client</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
2 changes: 1 addition & 1 deletion src/Twino.Core/ClientSocketBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ protected static bool CertificateCallback(object sender, X509Certificate certifi
/// </summary>
protected void SetOnMessageReceived(TMessage message)
{
LastAliveDate = DateTime.UtcNow;
KeepAlive();
MessageReceived?.Invoke(this, message);
}
}
Expand Down
5 changes: 0 additions & 5 deletions src/Twino.Core/IConnectionInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,5 @@ public interface IConnectionInfo
/// </summary>
/// <returns></returns>
Stream GetStream();

/// <summary>
/// call when client sends pong message as ping asnwer
/// </summary>
void PongReceived();
}
}
28 changes: 17 additions & 11 deletions src/Twino.Core/SocketBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,6 @@ public abstract class SocketBase
/// </summary>
public bool IsSsl { get; protected set; }

/// <summary>
/// The last PONG received time. If this time is before last second PING time, the client will be removed.
/// </summary>
internal DateTime PongTime { get; set; }

/// <summary>
/// When client is disconnected and disposed,
/// The message will be sent to all event subscribers.
Expand Down Expand Up @@ -77,6 +72,11 @@ public abstract class SocketBase
/// Used for preventing unnecessary ping/pong traffic
/// </summary>
public DateTime LastAliveDate { get; protected set; } = DateTime.UtcNow;

/// <summary>
/// True, If a pong must received asap
/// </summary>
internal bool PongRequired { get; set; }

#endregion

Expand All @@ -87,15 +87,13 @@ public abstract class SocketBase
/// </summary>
protected SocketBase()
{
PongTime = DateTime.UtcNow.AddSeconds(15);
}

/// <summary>
/// Socket base constructor for server sockets
/// </summary>
protected SocketBase(IConnectionInfo info)
{
PongTime = DateTime.UtcNow.AddSeconds(15);
IsSsl = info.IsSsl;
IsConnected = true;
Stream = info.GetStream();
Expand Down Expand Up @@ -148,8 +146,8 @@ public async Task<bool> SendAsync(byte[] data)
if (Stream == null || data == null)
return false;

LastAliveDate = DateTime.UtcNow;
await Stream.WriteAsync(data);
LastAliveDate = DateTime.UtcNow;
return true;
}
catch
Expand All @@ -168,8 +166,6 @@ public bool Send(byte[] data)
{
if (Stream == null || data == null)
return false;

LastAliveDate = DateTime.UtcNow;

if (IsSsl)
{
Expand All @@ -187,6 +183,7 @@ public bool Send(byte[] data)
else
Stream.BeginWrite(data, 0, data.Length, EndWrite, data);

LastAliveDate = DateTime.UtcNow;
return true;
}
catch
Expand Down Expand Up @@ -219,6 +216,15 @@ private void SendQueue(byte[] data)
}, "", false);
}

/// <summary>
/// Updates socket alive date
/// </summary>
public void KeepAlive()
{
LastAliveDate = DateTime.UtcNow;
PongRequired = false;
}

#endregion

#region Abstract Methods
Expand Down Expand Up @@ -303,7 +309,7 @@ internal void SetOnProtocolSwitched(ITwinoProtocol previous, ITwinoProtocol curr
/// </summary>
/// <returns></returns>
public abstract void Pong();

#endregion
}
}
6 changes: 3 additions & 3 deletions src/Twino.Core/Twino.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Core</Product>
<Description>Twino Core library for all twino servers, protocols and services</Description>
<PackageTags>twino,server,core</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("Mehmet Helvacıköylü")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("Twino Core library for all twino servers, protocols and services")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.12")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Twino.Core")]
[assembly: System.Reflection.AssemblyTitleAttribute("Twino.Core")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.12")]
6 changes: 3 additions & 3 deletions src/Twino.Extensions.Data/Twino.Extensions.Data.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Extensions.Data</Product>
<Description>Entity Framework Core Data Context extension for Twino IOC</Description>
<PackageTags>twino,entity,framework,data,context,factory,ioc,service</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
6 changes: 3 additions & 3 deletions src/Twino.Extensions.Http/Twino.Extensions.Http.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Extensions.Http</Product>
<Description>HttpClient Factory extension for Twino IOC</Description>
<PackageTags>twino,http,client,factory,ioc,dependency,injection,service</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("Mehmet Helvacıköylü")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("HttpClient Factory extension for Twino IOC")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.12")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Twino.Extensions.Http")]
[assembly: System.Reflection.AssemblyTitleAttribute("Twino.Extensions.Http")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.12")]
6 changes: 3 additions & 3 deletions src/Twino.Ioc/Twino.Ioc.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Ioc</Product>
<Description>Twino IOC Service containers and scopes</Description>
<PackageTags>twino,ioc,dependency,injection,service,container,scope</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("Mehmet Helvacıköylü")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("Twino IOC Service containers and scopes")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.12")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Twino.Ioc")]
[assembly: System.Reflection.AssemblyTitleAttribute("Twino.Ioc")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.12")]
2 changes: 1 addition & 1 deletion src/Twino.MQ/Network/MqConnectionHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ private async Task RouteToHandler(MqClient mc, TmqMessage message, IConnectionIn

//client sends PONG message
case MessageType.Pong:
info.PongReceived();
mc.KeepAlive();
break;

//close the client's connection
Expand Down
6 changes: 3 additions & 3 deletions src/Twino.MQ/Twino.MQ.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.MQ</Product>
<Description>Messaging Queue Server library with TMQ Protocol via Twino Server</Description>
<PackageTags>twino,server,tmq,messaging,queue,mq</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("Mehmet Helvacıköylü")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("Messaging Queue Server library with TMQ Protocol via Twino Server")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.12")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Twino.MQ")]
[assembly: System.Reflection.AssemblyTitleAttribute("Twino.MQ")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.12")]
6 changes: 3 additions & 3 deletions src/Twino.Mvc.Auth.Jwt/Twino.Mvc.Auth.Jwt.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Mvc.Auth.Jwt</Product>
<Description>JSON Web Token Authentication and Authorization library for Twino MVC</Description>
<PackageTags>twino,http,mvc,jwt,token,authentication,authorization</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("Mehmet Helvacıköylü")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("JSON Web Token Authentication and Authorization library for Twino MVC")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.12")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Twino.Mvc.Auth.Jwt")]
[assembly: System.Reflection.AssemblyTitleAttribute("Twino.Mvc.Auth.Jwt")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.12")]
6 changes: 3 additions & 3 deletions src/Twino.Mvc/Twino.Mvc.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Mvc</Product>
<Description>MVC Library for Twino Http Server</Description>
<PackageTags>twino,http,server,mvc</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
6 changes: 3 additions & 3 deletions src/Twino.Protocols.Http/Twino.Protocols.Http.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Protocols.Http</Product>
<Description>Twino Http Protocol library and server extension for Twino Server</Description>
<PackageTags>twino,tcp,server,http,protocol</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("Mehmet Helvacıköylü")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("Twino Http Protocol library and server extension for Twino Server")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.3.12")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Twino.Protocols.Http")]
[assembly: System.Reflection.AssemblyTitleAttribute("Twino.Protocols.Http")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.10")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.3.12")]
6 changes: 3 additions & 3 deletions src/Twino.Protocols.TMQ/Twino.Protocols.TMQ.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Protocols.TMQ</Product>
<Description>Twino Messaging Queue (TMQ) Protocol library and server extension for Twino Server</Description>
<PackageTags>twino,tcp,server,http,messaging,queue,tmq,mq,protocol</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
4 changes: 3 additions & 1 deletion src/Twino.Protocols.TMQ/TwinoTmqProtocol.cs
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,9 @@ public async Task HandleConnection(IConnectionInfo info, ProtocolHandshakeResult
//if user makes a mistake in received method, we should not interrupt connection handling
try
{
await _handler.Received(_server, info, (TmqServerSocket) handshakeResult.Socket, message);
TmqServerSocket socket = (TmqServerSocket) handshakeResult.Socket;
socket.KeepAlive();
await _handler.Received(_server, info, socket, message);
}
catch (Exception e)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Product>Twino.Protocols.WebSocket</Product>
<Description>WebSocket Protocol library and server extension for Twino Server</Description>
<PackageTags>twino,tcp,server,http,websocket,protocol,ws</PackageTags>
<AssemblyVersion>2.3.10</AssemblyVersion>
<FileVersion>2.3.10</FileVersion>
<PackageVersion>2.3.10</PackageVersion>
<AssemblyVersion>2.3.12</AssemblyVersion>
<FileVersion>2.3.12</FileVersion>
<PackageVersion>2.3.12</PackageVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Mehmet Helvacıköylü</Authors>
<PackageProjectUrl>https://github.com/mhelvacikoylu/twino</PackageProjectUrl>
Expand Down
5 changes: 3 additions & 2 deletions src/Twino.Protocols.WebSocket/TwinoWebSocketProtocol.cs
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,8 @@ public async Task HandleConnection(IConnectionInfo info, ProtocolHandshakeResult
info.Close();
return;
}


handshakeResult.Socket.KeepAlive();
await ProcessMessage(info, handshakeResult.Socket, message);
}
}
Expand Down Expand Up @@ -178,7 +179,7 @@ private async Task ProcessMessage(IConnectionInfo info, SocketBase socket, WebSo

//client sent response pong to ping message
case SocketOpCode.Pong:
info.PongReceived();
socket.KeepAlive();
break;
}
}
Expand Down
Loading

0 comments on commit 89b822a

Please sign in to comment.