91 lines
2.4 KiB
C#
91 lines
2.4 KiB
C#
#if !BESTHTTP_DISABLE_SIGNALR
|
|
|
|
using System;
|
|
|
|
using UnityEngine;
|
|
using BestHTTP.SignalR;
|
|
|
|
namespace BestHTTP.Examples
|
|
{
|
|
public sealed class SimpleStreamingSample : MonoBehaviour
|
|
{
|
|
readonly Uri URI = new Uri(GUIHelper.BaseURL + "/streaming-connection");
|
|
|
|
/// <summary>
|
|
/// Reference to the SignalR Connection
|
|
/// </summary>
|
|
Connection signalRConnection;
|
|
|
|
/// <summary>
|
|
/// Helper GUI class to handle and display a string-list
|
|
/// </summary>
|
|
GUIMessageList messages = new GUIMessageList();
|
|
|
|
#region Unity Events
|
|
|
|
void Start()
|
|
{
|
|
// Create the SignalR connection
|
|
signalRConnection = new Connection(URI);
|
|
|
|
// set event handlers
|
|
signalRConnection.OnNonHubMessage += signalRConnection_OnNonHubMessage;
|
|
signalRConnection.OnStateChanged += signalRConnection_OnStateChanged;
|
|
signalRConnection.OnError += signalRConnection_OnError;
|
|
|
|
// Start connecting to the server
|
|
signalRConnection.Open();
|
|
}
|
|
|
|
void OnDestroy()
|
|
{
|
|
// Close the connection when the sample is closed
|
|
signalRConnection.Close();
|
|
}
|
|
|
|
void OnGUI()
|
|
{
|
|
GUIHelper.DrawArea(GUIHelper.ClientArea, true, () =>
|
|
{
|
|
GUILayout.Label("Messages");
|
|
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.Space(20);
|
|
messages.Draw(Screen.width - 20, 0);
|
|
GUILayout.EndHorizontal();
|
|
});
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region SignalR Events
|
|
|
|
/// <summary>
|
|
/// Handle Server-sent messages
|
|
/// </summary>
|
|
void signalRConnection_OnNonHubMessage(Connection connection, object data)
|
|
{
|
|
messages.Add("[Server Message] " + data.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// Display state changes
|
|
/// </summary>
|
|
void signalRConnection_OnStateChanged(Connection connection, ConnectionStates oldState, ConnectionStates newState)
|
|
{
|
|
messages.Add(string.Format("[State Change] {0} => {1}", oldState, newState));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Display errors.
|
|
/// </summary>
|
|
void signalRConnection_OnError(Connection connection, string error)
|
|
{
|
|
messages.Add("[Error] " + error);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
#endif |