public RestTemplate( IHttpClientFactory httpClientFactory, ServiceDiscovery serviceDiscovery ) : base(httpClientFactory) { _serviceDiscovery = serviceDiscovery; }
/// <summary> /// Uses DNS-SD to find all Factory Orchestrator services on your local network. /// </summary> /// <param name="secondsToWait">Number of seconds to wait for services to respond</param> /// <param name="serverIdentity">The service certificate identity to use</param> /// <param name="certhash">The service certificate hash to use</param> /// <returns>List of FactoryOrchestratorClient representing all discovered clients</returns> public static List <FactoryOrchestratorClient> DiscoverFactoryOrchestratorDevices(int secondsToWait = 5, string serverIdentity = "FactoryServer", string certhash = "E8BF0011168803E6F4AF15C9AFE8C9C12F368C8F") { List <FactoryOrchestratorClient> clients = new List <FactoryOrchestratorClient>(); using (var sd = new ServiceDiscovery()) { sd.ServiceInstanceDiscovered += ((s, e) => { foreach (var srv in e.Message.AdditionalRecords.Union(e.Message.Answers).OfType <SRVRecord>().Where(x => x.CanonicalName.EndsWith("_factorch._tcp.local", StringComparison.InvariantCultureIgnoreCase)).Distinct()) { var port = srv.Port; foreach (var ip in e.Message.AdditionalRecords.Union(e.Message.Answers).OfType <ARecord>()) { var client = new FactoryOrchestratorClient(ip.Address, port, serverIdentity, certhash); client.HostName = ip.CanonicalName.Replace(".factorch.local", ""); var osVer = e.Message.AdditionalRecords.Union(e.Message.Answers).OfType <TXTRecord>().SelectMany(x => x.Strings).Where(x => x.StartsWith("OSVersion=", StringComparison.InvariantCultureIgnoreCase)).DefaultIfEmpty(string.Empty).FirstOrDefault().Replace("OSVersion=", ""); client.OSVersion = osVer; clients.Add(client); } } }); sd.QueryServiceInstances("_factorch._tcp"); Thread.Sleep(secondsToWait * 1000); } return(clients); }
public async Task <ServiceNodeInfo> GetNextNode(string serviceName, string serviceRoute, IReadOnlyList <object> serviceArgs, IReadOnlyDictionary <string, string> serviceMeta) { var nodes = await ServiceDiscovery.GetServiceNodes(serviceName); if (!nodes.Any()) { throw new NotFoundNodeException(serviceName); } if (nodes.Count == 1) { return(nodes.First()); } lock (LockObject) { var index = -1; var total = 0; for (var i = 0; i < nodes.Count; i++) { nodes[i].Attach.AddOrUpdate(Key, nodes[i].Weight, (key, old) => Convert.ToInt32(old) + nodes[i].Weight); total += nodes[i].Weight; if (index == -1 || GetCurrentWeightValue(nodes[index]) < GetCurrentWeightValue(nodes[i])) { index = i; } } nodes[index].Attach.AddOrUpdate(Key, -total, (k, old) => Convert.ToInt32(old) - total); var node = nodes[index]; if (Logger.IsEnabled(LogLevel.Trace)) { Logger.LogTrace($"Load to node {node.ServiceId}."); } return(node); } }
public async Task Start_Should_NotRegister_When_RegisterMDNSsIsFalse() { var serverName = _fixture.Create <string>(); _option.RegistermDNS = false; _option.ServerName = serverName; var host = new MDnsRegisterHostedService(_server, _option, _things, _logger); await host.StartAsync(CancellationToken.None); using var discovery = new ServiceDiscovery(); discovery.ServiceDiscovered += (sender, name) => { name.Labels.Contains(serverName).Should().BeFalse(); }; discovery.ServiceInstanceDiscovered += (sender, args) => { args.ServiceInstanceName.Labels.Contains(serverName).Should().BeFalse(); }; await Task.Delay(TimeSpan.FromSeconds(5)); await host.StopAsync(CancellationToken.None); }
private void Discover() { ServiceDiscovery sd = new ServiceDiscovery(mdns); mdns.NetworkInterfaceDiscovered += (s, e) => { foreach (var networkInterface in e.NetworkInterfaces) { logger.Info($"Network-Interface: '{networkInterface.Name}' found"); } }; sd.ServiceDiscovered += Sd_ServiceDiscovered; sd.ServiceInstanceDiscovered += Sd_ServiceInstanceDiscovered; sd.ServiceInstanceShutdown += Sd_ServiceInstanceShutdown; try { mdns.Start(); cancellationToken = new CancellationTokenSource(); while (!cancellationToken.IsCancellationRequested) { sd.QueryAllServices(); Thread.Sleep(DISCOVER_THREAD_DELAY); } } finally { sd.Dispose(); mdns.Stop(); } }
public async Task StopAsync(CancellationToken cancellationToken) { if (!UraganoSettings.IsDevelopment) { await ServiceDiscovery.DeregisterAsync(UraganoSettings.ServiceDiscoveryClientConfiguration, UraganoSettings.ServiceRegisterConfiguration.Id, cancellationToken); } }
public Task <bool> Start() { _multicastService = new MulticastService(); _serviceDiscovery = new ServiceDiscovery(); _multicastService.NetworkInterfaceDiscovered += (sender, args) => { _serviceDiscovery.QueryAllServices(); }; _serviceDiscovery.ServiceDiscovered += (s, serviceName) => { _logger.LogInformation($"service '{serviceName}'"); // Ask for the name of instances of the service. _multicastService.SendQuery(serviceName, type: DnsType.PTR); }; _serviceDiscovery.ServiceInstanceDiscovered += (s, e) => { _logger.LogInformation($"service instance '{e.ServiceInstanceName}'"); // Ask for the service instance details. _multicastService.SendQuery(e.ServiceInstanceName, type: DnsType.SRV); }; _multicastService.Start(); return(Task.FromResult(true)); }
/// <inheritdoc /> public Task StartAsync() { MulticastService.NetworkInterfaceDiscovered += (s, e) => { try { var profile = BuildProfile(); var discovery = new ServiceDiscovery(MulticastService); OnServiceDiscovery(discovery); discovery.ServiceInstanceDiscovered += OnServiceInstanceDiscovered; if (Broadcast && profile != null) { log.Debug($"Advertising {profile.FullyQualifiedName}"); discovery.Advertise(profile); } // Ask all peers to broadcast discovery info. discovery.QueryServiceInstances(ServiceName); } catch (Exception ex) { log.Debug("Failed to send query", ex); // eat it } }; return(Task.CompletedTask); }
private void LoadExtensions() { this.version = this.im.LoadExtension <SoftwareVersion>(); this.sdisco = this.im.LoadExtension <ServiceDiscovery>(); this.ecapa = this.im.LoadExtension <EntityCapabilities>(); this.ping = this.im.LoadExtension <S22.Xmpp.Extensions.Ping>(); this.attention = this.im.LoadExtension <Attention>(); this.time = this.im.LoadExtension <EntityTime>(); this.block = this.im.LoadExtension <BlockingCommand>(); this.pep = this.im.LoadExtension <Pep>(); this.userTune = this.im.LoadExtension <UserTune>(); this.userAvatar = this.im.LoadExtension <UserAvatar>(); this.userMood = this.im.LoadExtension <UserMood>(); this.dataForms = this.im.LoadExtension <DataForms>(); this.featureNegotiation = this.im.LoadExtension <FeatureNegotiation>(); this.streamInitiation = this.im.LoadExtension <StreamInitiation>(); this.siFileTransfer = this.im.LoadExtension <SIFileTransfer>(); this.inBandBytestreams = this.im.LoadExtension <InBandBytestreams>(); this.userActivity = this.im.LoadExtension <UserActivity>(); this.socks5Bytestreams = this.im.LoadExtension <Socks5Bytestreams>(); this.FileTransferSettings = new S22.Xmpp.Client.FileTransferSettings(this.socks5Bytestreams, this.siFileTransfer); this.serverIpCheck = this.im.LoadExtension <ServerIpCheck>(); this.inBandRegistration = this.im.LoadExtension <InBandRegistration>(); this.chatStateNotifications = this.im.LoadExtension <ChatStateNotifications>(); this.bitsOfBinary = this.im.LoadExtension <BitsOfBinary>(); }
public async Task <ServiceNodeInfo> GetNextNode(string serviceName, string serviceRoute, IReadOnlyList <object> serviceArgs, IReadOnlyDictionary <string, string> serviceMeta) { var nodes = await ServiceDiscovery.GetServiceNodes(serviceName); if (!nodes.Any()) { throw new NotFoundNodeException(serviceName); } if (nodes.Count == 1) { return(nodes.First()); } lock (LockObject) { _index++; if (_index > nodes.Count - 1) { _index = 0; } if (Logger.IsEnabled(LogLevel.Trace)) { Logger.LogTrace($"Load to node {nodes[_index].ServiceId}."); } return(nodes[_index]); } }
public async Task StopAsync(CancellationToken cancellationToken) { if (ServerSettings == null) { return; } await ServiceDiscovery.DeregisterAsync(); }
public WledDiscovery(ColorService cs) : base(cs) { var controlService = cs.ControlService; _mDns = controlService.MulticastService; _sd = controlService.ServiceDiscovery; _ids = new List <string>(); }
public MDnsTest(TestHost testHost) { _host = testHost; _serviceDiscovery = new ServiceDiscovery(); _serviceDiscovery.ServiceInstanceDiscovered += OnServiceInstanceDiscovered; _serviceDiscovery.ServiceDiscovered += OnServiceDiscovered; }
private void RegisterService(IAppHost host) { ServiceDiscovery = Settings.GetDiscoveryClient() ?? new ConsulDiscovery(); ServiceDiscovery.Register(host); // register servicestack discovery services host.Register(ServiceDiscovery); }
/// <summary>Constructor.</summary> public ServiceDiscoveryViewModel() { _serviceDiscovery = new ServiceDiscovery(); _serviceDiscovery.StatusUpdate += new ServiceDiscovery.ServiceDiscoveryStatusUpdate(OnStatusUpdate); CheckEndpointCommand = new RelayCommand(CheckEndpointCommand_Execute, CheckEndpointCommand_CanExecute); }
public MdnsLookup(Auow workflow) { Uow = workflow; mdns = new MulticastService(); mdns.AnswerReceived += Mdns_AnswerReceived; sd = new ServiceDiscovery(mdns); sd.ServiceInstanceDiscovered += Sd_ServiceInstanceDiscovered; }
static void Main(string[] args) { Console.WriteLine("Multicast DNS spike"); // set logger factory var properties = new Common.Logging.Configuration.NameValueCollection { ["level"] = "TRACE", ["showLogName"] = "true", ["showDateTime"] = "true" }; LogManager.Adapter = new ConsoleOutLoggerFactoryAdapter(properties); var mdns = new MulticastService { NetworkInterfaceDiscoveryInterval = TimeSpan.FromSeconds(1), }; foreach (var a in MulticastService.GetIPAddresses()) { Console.WriteLine($"IP address {a}"); } mdns.QueryReceived += (s, e) => { var names = e.Message.Questions .Select(q => q.Name + " " + q.Type); Console.WriteLine($"got a query for {String.Join(", ", names)}"); }; mdns.AnswerReceived += (s, e) => { var names = e.Message.Answers .Select(q => q.Name + " " + q.Type) .Distinct(); Console.WriteLine($"got answer for {String.Join(", ", names)}"); }; mdns.NetworkInterfaceDiscovered += (s, e) => { foreach (var nic in e.NetworkInterfaces) { Console.WriteLine($"discovered NIC '{nic.Name}'"); } }; var sd = new ServiceDiscovery(mdns); sd.Advertise(new ServiceProfile("x1", "_xservice._tcp", 5011)); sd.Advertise(new ServiceProfile("x2", "_xservice._tcp", 666)); var z1 = new ServiceProfile("z1", "_zservice.udp", 5012); z1.AddProperty("foo", "bar"); sd.Advertise(z1); mdns.Start(); Console.ReadKey(); }
public static async Task Receive(ReceiveParameters param) { if (param.deviceName == null) { param.deviceName = Environment.MachineName; } try { using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) { using (var sd = new ServiceDiscovery()) { var endPoint = new IPEndPoint(IPAddress.Any, 0); socket.Bind(endPoint); var port = ((IPEndPoint)socket.LocalEndPoint).Port; var serviceProfile = new ServiceProfile(param.deviceName, ADropDomainName, (ushort)port); sd.Advertise(serviceProfile); socket.Listen(1); var incoming = socket.Accept(); Console.WriteLine($"{incoming.RemoteEndPoint} connect, receiving metadata."); using (var receiver = new Receiver(incoming)) { var meta = receiver.ReadMetadata(); Console.WriteLine($"MetaInfo: {meta.FileInfos.Count()} files with type:\n{meta.FileInfos}"); receiver.SendAction(Proto.Action.Types.ActionType.Accepted); for (int i = 0; i < meta.FileInfos.Count(); i++) { var mimeType = meta.FileInfos[i].FileType; var result = await receiver.ReadFile(); if (mimeType == "text/plain") { Console.WriteLine($"received text: \n{Encoding.UTF8.GetString(result)}"); } else { var extension = MimeTypes.MimeTypeMap.GetExtension(mimeType) ?? ".dat"; File.WriteAllBytes($"{i}{extension}", result); } } } } return; } } catch (SocketException e) { Console.WriteLine(e); } return; }
private void RegisterService(IAppHost host) { ServiceDiscovery = Settings.GetDiscoveryClient() ?? new ConsulDiscovery(); ServiceDiscovery.Register(host); // register servicestack discovery services host.Register(ServiceDiscovery); host.GetContainer() .Register <IServiceGatewayFactory>(x => new ConsulServiceGatewayFactory(Settings.GetGateway(), ServiceDiscovery)) .ReusedWithin(ReuseScope.None); }
private static void RunServer() { var service = "_appletv.local.appletv._local.appletv.local.appletv.local"; var mdns = new MulticastService(); mdns.QueryReceived += (s, e) => { var msg = e.Message; if (msg.Questions.Any(q => q.Name == service)) { var res = msg.CreateResponse(); var addresses = MulticastService.GetIPAddresses() .Where(ip => ip.AddressFamily == AddressFamily.InterNetwork); foreach (var address in addresses) { var ar = new ARecord { Name = service, Address = address }; var writer = new PresentationWriter(new StringWriter()); writer.WriteString("123qweq"); ar.WriteData(writer); ar.Name = "qweqeqweq"; res.Answers.Add(ar); } mdns.SendAnswer(res); } }; advertiseThread = new Thread(new ThreadStart(() => { sd = new ServiceDiscovery(mdns); var sp = new ServiceProfile("_itxpt_multicast._tcp.", "_itxpt._tcp", 5353, new List <IPAddress> { IPAddress.Parse("192.168.88.239") }); //sp.AddProperty("host", "192.168.88.239"); //sp.AddProperty("port", "14005"); sp.Resources.Add(new ARecord { Name = "_itxpt_multicast._tcp.", Address = IPAddress.Parse("192.168.88.239"), Class = DnsClass.ANY }); sp.Resources.Add(new SRVRecord { Name = "_itxpt_multicast._tcp.", Port = 5353, Priority = 0, Weight = 0, Class = DnsClass.ANY }); sp.Resources.Add(new PTRRecord { Name = "_itxpt_multicast._tcp.", DomainName = "192.168.88.239" }); sd.Advertise(sp); })); advertiseThread.Start(); mdns.Start(); }
public int StartRunning() { if (!IsMaster) return int.MinValue; // 启用了服务发现的情况下, 检查是否有其他的Master存在 if (ServiceDiscovery.Instance != null) { var discover_name = ServiceDiscovery.GetDiscoverName(GetNameKey()); var task_checkstate = ServiceDiscovery.Instance.GetSchedServiceState(discover_name); Task.WaitAll(task_checkstate); var master_state = task_checkstate.Result; if (master_state != null) { Console.WriteLine($"Error : master already exist ({Prefix})."); return int.MinValue; } } //标记以Master方式运行 RunningAsMaster = true; CreateContext().RecordAlive().Wait(); var time_start = PerformStartTime.Add(Math.Ceiling((DateTime.UtcNow - PerformStartTime).TotalMilliseconds / Interval.TotalMilliseconds) * Interval); var offset_start = time_start - DateTime.UtcNow; Timer = new Timer(async t => { var ctx = CreateContext(); // 创建演出上下文 await ctx.RecordAlive(); if (!Enabled) return; await OnUpdate(ctx); if (!await ctx.SetCurrentStatus(PerformContext.Status.Started)) return; // 尝试标记开始, 如果已经开始,退出 if (!await ctx.Lock()) return; // 尝试上活锁, 如果加锁失败, 退出 try { await OnPerform(ctx); await ctx.SetCurrentStatus(PerformContext.Status.Completed); //标记完成 } catch (Exception ex) { await ctx.SetCurrentStatus(PerformContext.Status.Error); //标记错误 _logger.LogError($"Sechedule {ctx.CurrRoundKey} Error : {ex.Message}"); } finally { await ctx.Unlock(); } }, null, offset_start, Interval); return offset_start.Seconds; }
public void TestGetReplicaEndpoint() { string replicaAddress = "{\"Endpoints\":{\"ServiceEndpoint\":\"TCP://10.0.0.4:99\",\"ManagementEndpoint\":\"net.tcp://10.0.0.6:61019/ManagementEndpoint\"}}"; var serviceEndpoint = ServiceDiscovery.GetReplicaEndpointUri(replicaAddress, "ServiceEndpoint"); var managementEndpoint = ServiceDiscovery.GetReplicaEndpointUri(replicaAddress, "ManagementEndpoint"); Assert.AreEqual("10.0.0.4", serviceEndpoint.Host); Assert.AreEqual(99, serviceEndpoint.Port); Assert.AreEqual("/", serviceEndpoint.PathAndQuery); Assert.AreEqual("10.0.0.6", managementEndpoint.Host); Assert.AreEqual(61019, managementEndpoint.Port); Assert.AreEqual("/ManagementEndpoint", managementEndpoint.PathAndQuery); }
private void AdvertiseService(IPAddress ip) { var service = new ServiceProfile($"Vent-Test", "_venttest._tcp", 54321, new List <IPAddress>() { ip }); service.AddProperty("vn", "1.0"); service.AddProperty("fn", new EasClientDeviceInformation().FriendlyName); Debug.WriteLine("Made service profile"); SD = new ServiceDiscovery(); Debug.WriteLine("Made ServiceDiscovery"); SD.Advertise(service); Debug.WriteLine("Advertising"); }
public static Dictionary <string, ServiceDiscovery.Resolved> Parse(Configuration.Config config) { return(config.AsEnumerable() .Select(pair => (pair.Key, config.GetConfig(pair.Key))) .ToDictionary(pair => pair.Key, pair => { var(serviceName, full) = pair; var endpoints = full.GetStringList("endpoints"); var resolvedTargets = endpoints.Select(e => { var values = e.Split(':'); return new ServiceDiscovery.ResolvedTarget(values[0], int.TryParse(values.Skip(1).FirstOrDefault(), out var i) ? i : default(int?)); }).ToArray(); return new ServiceDiscovery.Resolved(serviceName, resolvedTargets); }));
public static void Main(string[] args) { var serviceDiscovery = new ServiceDiscovery(); var endpointStrategy = new StickyEndpointStrategy(serviceDiscovery); var clientFactory = new ClientFactory(endpointStrategy); var tasks = new Task[3]; for (var i = 0; i < tasks.Length; ++i) { tasks[i] = Task.Factory.StartNew(x => RunClientTest(clientFactory), null); } Console.ReadLine(); }
private void Advertise() { ServiceDiscovery serviceDiscovery = new ServiceDiscovery(mdns); serviceDiscovery.Advertise(serviceProfile); mdns.Start(); lock (locker) while (IsRunning) { Monitor.Wait(locker); } serviceDiscovery.Unadvertise(serviceProfile); }
static async Task Main(string[] args) { Console.WriteLine("Ropu Serving Node"); Console.WriteLine("Copyright (c) Daniel Hughes"); Console.WriteLine(); var settingsReader = new CommandLineSettingsReader(); var settings = settingsReader.ParseArgs(args); if (settings == null) { return; } var portFinder = new PortFinder(); var credentialsProvider = new CredentialsProvider() { Email = settings.Email, Password = settings.Password }; var webClient = new RopuWebClient("https://192.168.1.9:5001", credentialsProvider); var keysClient = new KeysClient(webClient, true, encryptionKey => new CachedEncryptionKey(encryptionKey, key => new AesGcmWrapper(key))); var packetEncryption = new PacketEncryption(keysClient); var mediaProtocol = new RopuProtocol(portFinder, StartingServingNodePort, packetEncryption, keysClient); var loadBalancerProtocol = new LoadBalancerProtocol(portFinder, StartingLoadBalancerPort, packetEncryption, keysClient); var serviceDiscovery = new ServiceDiscovery(); var groupsClient = new GroupsClient(webClient, new ImageClient(webClient)); var registra = new Registra(groupsClient); var servingNodes = new ServingNodes(100); var groupCallControllerLookup = new GroupCallControllerLookup(); var servicesClient = new ServicesClient(webClient, ServiceType.ServingNode); var servingNodeRunner = new ServingNodeRunner( mediaProtocol, loadBalancerProtocol, serviceDiscovery, registra, servingNodes, groupCallControllerLookup, servicesClient, keysClient); await servingNodeRunner.Run(); }
protected override void BuildServiceStubs() { var queryServicesStub = new LightweightMethodStub <RpcObjectRequest, RpcServicesQueryResponse>( "SciTech.Rpc.RpcService.QueryServices", (request, _, context) => new ValueTask <RpcServicesQueryResponse>(this.QueryServices(request.Id)), this.Serializer, null, false); this.AddMethodDef(queryServicesStub); if (this.AllowDiscovery) { var discovery = new ServiceDiscovery(this, this.CreateDefaultSerializer()); discovery.AddDiscoveryMethods(new MethodBinder(this)); } base.BuildServiceStubs(); }
/// <summary> /// Initialize a new instance of <see cref="MDnsRegisterHostedService"/>. /// </summary> /// <param name="server">The <see cref="IServer"/> with feature.</param> /// <param name="options">The <see cref="ThingOption"/>.</param> /// <param name="things">All things for in the application. It's use for determinate the server name if isn't set.</param> /// <param name="logger">The <see cref="ILogger{TCategoryName}"/></param> public MDnsRegisterHostedService(IServer server, ThingOption options, IEnumerable <Thing> things, ILogger <MDnsRegisterHostedService> logger) { _discovery = new ServiceDiscovery(); _profiles = new List <ServiceProfile>(); _server = server ?? throw new ArgumentNullException(nameof(server)); _option = options; _logger = logger; _name = options.ServerName; if (string.IsNullOrEmpty(_name)) { _name = things.First().Name; } }
public async Task Start_Should_Register_When_RegisterMDNSsIsTrueAndHaveTls() { _option.RegistermDNS = true; _option.ServerName = string.Empty; var addresses = new ServerAddressesFeature(); addresses.Addresses.Add("local:8888"); _server.Features.Get <IServerAddressesFeature>().Returns(addresses); var tls = Substitute.For <ITlsHandshakeFeature>(); tls.Protocol.Returns(SslProtocols.Tls); _server.Features.Get <ITlsHandshakeFeature>().Returns(tls); _things.Add(new FakeThing()); var find = false; using var discovery = new ServiceDiscovery(); discovery.ServiceDiscovered += (sender, name) => { if (name.Labels.Contains("Fake")) { find = true; } }; discovery.ServiceInstanceDiscovered += (sender, args) => { if (args.ServiceInstanceName.Labels.Contains("Fake")) { find = true; } }; var host = new MDnsRegisterHostedService(_server, _option, _things, _logger); await host.StartAsync(CancellationToken.None); await Task.Delay(TimeSpan.FromSeconds(10)); find.Should().BeTrue(); await host.StopAsync(CancellationToken.None); }
/// <summary> /// Initializes the various XMPP extension modules. /// </summary> private void LoadExtensions() { version = im.LoadExtension<SoftwareVersion>(); sdisco = im.LoadExtension<ServiceDiscovery>(); ecapa = im.LoadExtension<EntityCapabilities>(); ping = im.LoadExtension<Ping>(); attention = im.LoadExtension<Attention>(); time = im.LoadExtension<EntityTime>(); block = im.LoadExtension<BlockingCommand>(); pep = im.LoadExtension<Pep>(); userTune = im.LoadExtension<UserTune>(); #if WINDOWSPLATFORM userAvatar = im.LoadExtension<UserAvatar>(); #endif userMood = im.LoadExtension<UserMood>(); dataForms = im.LoadExtension<DataForms>(); featureNegotiation = im.LoadExtension<FeatureNegotiation>(); streamInitiation = im.LoadExtension<StreamInitiation>(); siFileTransfer = im.LoadExtension<SIFileTransfer>(); inBandBytestreams = im.LoadExtension<InBandBytestreams>(); userActivity = im.LoadExtension<UserActivity>(); socks5Bytestreams = im.LoadExtension<Socks5Bytestreams>(); FileTransferSettings = new FileTransferSettings(socks5Bytestreams, siFileTransfer); serverIpCheck = im.LoadExtension<ServerIpCheck>(); messageCarbons = im.LoadExtension<MessageCarbons>(); inBandRegistration = im.LoadExtension<InBandRegistration>(); chatStateNotifications = im.LoadExtension<ChatStateNotifications>(); bitsOfBinary = im.LoadExtension<BitsOfBinary>(); vcardAvatars = im.LoadExtension<VCardAvatars>(); cusiqextension = im.LoadExtension<CustomIqExtension>(); messageArchiving = im.LoadExtension<MessageArchiving>(); messageArchiveManagement = im.LoadExtension<MessageArchiveManagement>(); multiUserChat = im.LoadExtension<MultiUserChat>(); serviceAdministration = im.LoadExtension<ServiceAdministration>(); adHocCommands = im.LoadExtension<AdHocCommands>(); directMucInvitations = im.LoadExtension<DirectMucInvitations>(); }
/// <summary> /// Initializes the various XMPP extension modules. /// </summary> void LoadExtensions() { version = im.LoadExtension<SoftwareVersion>(); sdisco = im.LoadExtension<ServiceDiscovery>(); ecapa = im.LoadExtension<EntityCapabilities>(); ping = im.LoadExtension<Ping>(); attention = im.LoadExtension<Attention>(); time = im.LoadExtension<EntityTime>(); block = im.LoadExtension<BlockingCommand>(); pep = im.LoadExtension<Pep>(); userTune = im.LoadExtension<UserTune>(); userAvatar = im.LoadExtension<UserAvatar>(); userMood = im.LoadExtension<UserMood>(); dataForms = im.LoadExtension<DataForms>(); featureNegotiation = im.LoadExtension<FeatureNegotiation>(); streamInitiation = im.LoadExtension<StreamInitiation>(); siFileTransfer = im.LoadExtension<SIFileTransfer>(); inBandBytestreams = im.LoadExtension<InBandBytestreams>(); userActivity = im.LoadExtension<UserActivity>(); socks5Bytestreams = im.LoadExtension<Socks5Bytestreams>(); FileTransferSettings = new FileTransferSettings(socks5Bytestreams, siFileTransfer); serverIpCheck = im.LoadExtension<ServerIpCheck>(); inBandRegistration = im.LoadExtension<InBandRegistration>(); chatStateNotifications = im.LoadExtension<ChatStateNotifications>(); bitsOfBinary = im.LoadExtension<BitsOfBinary>(); }