Как разместить мой пользовательский веб-сервер на IIS? - PullRequest
0 голосов
/ 26 августа 2018

Я создал новый протокол вместо того, чтобы использовать протокол HTTP, он работает на (tcplistener или OWIN) и tcpclient.Теперь я хочу разместить его в IIS (используйте OWIN или Katana и т. Д.).

Примечания:

1. Я не хочу использовать WCF, SignalR, WebSocket и другие компоненты

2.Я могу изменить заголовок первой строки моего протокола на хост Send Owin и пример его работы:

    public class WebSocketConnectionMiddleware : OwinMiddleware
    {
        public WebSocketConnectionMiddleware(OwinMiddleware next)
            : base(next)
        {

        }

        public override Task Invoke(IOwinContext context)
        {
            //this line will call after tcp connect
            return null;
        }
    }

    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {

            app.Use<WebSocketConnectionMiddleware>();
            // New code:
            app.Run(async context => {
                context.Response.ContentType = "text/plain";
                await context.Response.WriteAsync("Hello, world.");
            });

            try
            {
                TcpClient tcpClient = new TcpClient();
                tcpClient.Connect("localhost", 7994);
                var bytes = Encoding.ASCII.GetBytes(@"SignalGo-4.0 http://localhost:7994 HTTP/1.1
Host: localhost:7994

");
                tcpClient.GetStream().Write(bytes, 0, bytes.Length);

            }
            catch (Exception ex)
            {

            }
        }
    }

Но я не могу ничего читать или записывать в NetworkStream (где подключен tcpclient?)Вопросы:

1.Есть ли способ доступа к TCPClient или NetworkStream в OWIN для длительного чтения / записи данных?

2.Могу ли я создать свой собственный протокол?например полная замена первой строки «GET localhost: 443 HTTP / 1.0 \ r \ n Host: localhost», хост и заголовки и т. д.

...