Example #1
0
        public void Dispose()
        {
            if (this.grpcServer != null)
            {
                StopAsync().Wait();
                this.grpcServer = null;

                this.serviceMessageHandler.Dispose();
                this.serviceMessageHandler = null;
            }
        }
Example #2
0
        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="requestHandler">请求消息处理方法</param>
        /// <param name="port">监听端口</param>
        /// <param name="host">监听地址</param>
        /// <param name="options">设置项,如果为空,则自动设置最大发送和接收数据大小为2147483647字节</param>
        internal GrpcServer(IGrpcMessageHandler messageHandler, int port, string host = "0.0.0.0", List <ChannelOption> options = null)
        {
            if (messageHandler == null)
            {
                throw new Exception("GrpcMessageHandler is null");
            }

            this.serviceMessageHandler = new GrpcServiceMessageHandler(messageHandler);

            if (options == null)
            {
                options = new List <ChannelOption>();
                options.Add(new ChannelOption(ChannelOptions.MaxSendMessageLength, int.MaxValue));
                options.Add(new ChannelOption(ChannelOptions.MaxReceiveMessageLength, int.MaxValue));
            }

            this.grpcServer = new Server(options)
            {
                Services = { GrpcService.BindService(this.serviceMessageHandler) },
                Ports    = { new ServerPort(host, port, ServerCredentials.Insecure) }
            };
        }