我有一个无状态服务,我正在使用它作为websocket服务器。为此我使用ICommunicationListener。此外,我想使用ServiceProxy调用此服务的方法。所以我正在使用ServiceRemotingListener。
internal sealed class Stateless : StatelessService, ICommunicationListener, IStatelessServiceInterface
{
public Stateless(StatelessServiceContext context)
: base(context){ }
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return new List<ServiceInstanceListener>()
{
new ServiceInstanceListener((context) =>this.CreateServiceRemotingListener(context)),
new ServiceInstanceListener(_ => this)
};
}.....
因此当我同时使用监听器时,在诊断事件中运行应用程序后,我收到消息:socket将关闭。所以websocket无效。
所以我想知道我可以一起使用两种类型的监听器吗?或者我的问题有解决办法吗?
答案 0 :(得分:-1)
这是我的OpenAsync:
public Task<string> OpenAsync(CancellationToken cancellationToken)
{
EndpointResourceDescription serviceEndpoint = this.serviceContext.CodePackageActivationContext.GetEndpoint("ServiceEndpoint");
int port = serviceEndpoint.Port;
this.listeningAddress = string.Format(CultureInfo.InvariantCulture, "http://+:{0}/{1}{2}", port, this.appRoot, this.webSocketRoot);
this.publishAddress = this.listeningAddress.Replace("+", FabricRuntime.GetNodeContext().IPAddressOrFQDN);
this.Start();
return Task.FromResult(this.publishAddress);
}