public void Init(string port)
{
FleckLog.Level = LogLevel.Warn;
_allSockets = new List<IWebSocketConnection>();
var websocketaddr = "ws://127.0.0.1:" + port;
Logger.WriteMinorEvent("Attempting to open a WebSocketServer on " + websocketaddr);
_server = new WebSocketServer(websocketaddr);
try
{
_server.Start(socket =>
{
socket.OnOpen = () =>
{
Debug.WriteLine("Backend received an request to open a BloomWebSocketServer socket");
_allSockets.Add(socket);
};
socket.OnClose = () =>
{
Debug.WriteLine("Backend received an request to close BloomWebSocketServer socket");
_allSockets.Remove(socket);
};
});
}
catch (SocketException ex)
{
Logger.WriteEvent("Opening a WebSocketServer on " + websocketaddr + " failed. Error = " + ex);
ErrorReport.NotifyUserOfProblem(ex, "Bloom cannot start properly (cannot set up some internal communications){0}{0}" +
"What caused this?{0}" +
"Possibly another version of Bloom is running, perhaps not very obviously.{0}{0}" +
"What can you do?{0}" +
"Click OK, then exit Bloom and restart your computer.{0}" +
"If the problem keeps happening, click 'Details' and report the problem to the developers.", Environment.NewLine);
}
}