private static byte[] ConstructHandshakePacketContent(HandshakeInfo handshakeInfo) { using (var builder = new PacketBuilder()) { builder.WriteInt16(handshakeInfo.Version); builder.WriteLengthString(handshakeInfo.Subversion); builder.WriteBytes(handshakeInfo.ServerIv); builder.WriteBytes(handshakeInfo.ClientIv); // Locale ID (used for localizations and test servers) builder.WriteByte(handshakeInfo.LocaleId); return(builder.ToByteArray()); } }
/// <inheritdoc /> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="endpointCrypto"/> or <paramref name="handshakeInfo"/> are <see langword="null"/>. /// </exception> public void Start(EndpointCrypto endpointCrypto, HandshakeInfo handshakeInfo) { if (endpointCrypto == null) { throw new ArgumentNullException(nameof(endpointCrypto)); } if (handshakeInfo == null) { throw new ArgumentNullException(nameof(handshakeInfo)); } ThrowIfNoPacketReceivedSubscriber(); Crypto = endpointCrypto; byte[] handshake = ConstructHandshakePacket(handshakeInfo); BaseSession.Start(); BaseSession.Write(handshake); }
private static byte[] ConstructHandshakePacket(HandshakeInfo handshakeInfo) { var content = ConstructHandshakePacketContent(handshakeInfo); using (var builder = new PacketBuilder()) { if (handshakeInfo.Header.HasValue) { builder.WriteInt16(handshakeInfo.Header.Value); } else { builder.WriteInt16((ushort)content.Length); } builder.WriteBytes(content); return(builder.ToByteArray()); } }
public Associate(HandshakeInfo info) { Info = info; }
public override ByteString ConstructAssociate(HandshakeInfo info) { var handshakeInfo = AkkaHandshakeInfo.CreateBuilder() .SetOrigin(SerializeAddress(info.Origin)) .SetUid((ulong)info.Uid); return ConstructControlMessagePdu(CommandType.ASSOCIATE, handshakeInfo); }
public abstract ByteString ConstructAssociate(HandshakeInfo info);