protected override void PreStart()
{
base.PreStart();
_self = Self;
_eventStream = Context.System.EventStream;
// create initial actors and bind them
if (_initiator.CreateInitialActors != null)
{
var actors = _initiator.CreateInitialActors(Context, _connection);
if (actors != null)
{
foreach (var actor in actors)
{
BindActor(actor.Item1, actor.Item2.Select(t => new BoundType(t)));
}
}
}
// link connection to this
_connection.Closed += OnConnectionClose;
_connection.Received += OnConnectionReceive;
if (_connection.IsOpen == false)
{
try
{
_connection.Open();
}
catch (Exception e)
{
_logger.ErrorFormat("Cannot open connection.", e);
}
}
else
{
if (_connection.Active)
{
_connection.Send(new Packet
{
Type = PacketType.System,
Message = "1",
});
}
else
{
OnConnectionClose(_connection, -1);
}
}
}