mirror of
https://github.com/ppy/osu.git
synced 2024-12-23 08:12:53 +08:00
32 lines
1.0 KiB
C#
32 lines
1.0 KiB
C#
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
using System;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using osu.Framework.Bindables;
|
|
|
|
namespace osu.Game.Online.Notifications.WebSocket
|
|
{
|
|
/// <summary>
|
|
/// A client for asynchronous notifications sent by osu-web.
|
|
/// </summary>
|
|
public interface INotificationsClient
|
|
{
|
|
/// <summary>
|
|
/// Whether this <see cref="INotificationsClient"/> is currently connected to a server.
|
|
/// </summary>
|
|
IBindable<bool> IsConnected { get; }
|
|
|
|
/// <summary>
|
|
/// Invoked when a new <see cref="SocketMessage"/> arrives for this client.
|
|
/// </summary>
|
|
event Action<SocketMessage>? MessageReceived;
|
|
|
|
/// <summary>
|
|
/// Sends a <see cref="SocketMessage"/> to the notification server.
|
|
/// </summary>
|
|
Task SendAsync(SocketMessage message, CancellationToken? cancellationToken = default);
|
|
}
|
|
}
|