Files
Electron.NET/ElectronNET.API/BridgeConnector.cs

54 lines
1.9 KiB
C#

using Quobject.SocketIoClientDotNet.Client;
using System;
namespace ElectronNET.API
{
internal static class BridgeConnector
{
private static Socket _socket;
private static object _syncRoot = new object();
public static Socket Socket
{
get
{
if(_socket == null && HybridSupport.IsElectronActive)
{
lock (_syncRoot)
{
if (_socket == null && HybridSupport.IsElectronActive)
{
_socket = IO.Socket("http://localhost:" + BridgeSettings.SocketPort);
_socket.On(Socket.EVENT_CONNECT, () =>
{
Console.WriteLine("BridgeConnector connected!");
});
_socket.On(Socket.EVENT_CONNECT_ERROR, (args) =>
{
Console.WriteLine("Socket error! {0}", args??"no args");
});
_socket.On(Socket.EVENT_DISCONNECT, (args) =>
{
Console.WriteLine("Socket Disconnect! {0}", args ?? "no args");
});
}
}
}
else if(_socket == null && !HybridSupport.IsElectronActive)
{
lock (_syncRoot)
{
if (_socket == null && !HybridSupport.IsElectronActive)
{
_socket = IO.Socket(new Uri("http://localhost"), new IO.Options { AutoConnect = false });
Console.WriteLine("Electron not active. Socket created.");
}
}
}
return _socket;
}
}
}
}