diff --git a/Base/XBaseHub.cs b/Base/XBaseHub.cs
index b15aac2..1375fd7 100644
--- a/Base/XBaseHub.cs
+++ b/Base/XBaseHub.cs
@@ -14,7 +14,7 @@ namespace xPushService.Base {
///
/// a base class for implementing Hubs ...
///
- public abstract class XBaseHub : Hub {
+ public abstract class XBaseHub : Hub, IXBaseHub {
//
#region Props ...
protected readonly IXPushGroupStore groupStore;
diff --git a/Interfaces/IXBaseHub.cs b/Interfaces/IXBaseHub.cs
new file mode 100644
index 0000000..af941bb
--- /dev/null
+++ b/Interfaces/IXBaseHub.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using xPushService.Models;
+
+namespace xPushService.Interfaces
+{
+ public interface IXBaseHub
+ {
+ Task OnConnectedAsync();
+ Task OnDisconnectedAsync(Exception exception);
+ Task NotifyNewConnection(string connectionId);
+ Task UpdateLastSeen();
+ Task PushMessageAsync(XPushMessage message);
+ Task AuthorizedMessageAsync(XPushMessage message);
+ Task PushMessageToAll(XPushMessage message);
+ Task PushMessageToConnection(
+ string connectionId,
+ XPushMessage message
+ );
+ Task PushMessageToConnections(
+ IEnumerable connectionIds,
+ XPushMessage message
+ );
+ }
+}
\ No newline at end of file