Re: HTTPhandlers
From: daFou (daFou_at_discussions.microsoft.com)
Date: 09/15/04
- Next message: Willy Denoyette [MVP]: "Re: 2.0 Beta on Media Center Edition"
- Previous message: Cor Ligthert: "Re: COBOL file dump..."
- In reply to: Richard Blewett [DevelopMentor]: "Re: HTTPhandlers"
- Next in thread: Girish Bharadwaj: "Re: HTTPhandlers"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 15 Sep 2004 01:57:02 -0700
With a little help of you colegue Marvin Smit ( I used to work with him in
several companies ) I created this ultra efficient chat app. No Flash, No
Java, No ActiveX No Reloading and Maximum performance. It works like a charm
but not on port 80.
I know it is possible to intercept incomming requests on any port and
determine what to do with them. Conside a software firewall for instance like
zonealarm. THey do excactly what I want to do only different :-)
But I dont want to getinto the lower lvl c++ winsock hooking and am looking
to solve my problem on a less teadious method.
I'd love for you to involve some of your fellow teachers at developmentor
because this sounds like it could use some attention this matter.
Regards
"Richard Blewett [DevelopMentor]" wrote:
> Not being able to listen on a port that another process is listening on is just the way it works - the only way they have managed to get more then one process on port 80 in XP SP2 and Win2003 is to have a kernel mode driver (http.sys) listen on port 80 and dispatch HTTP traffic to the various user mode processes.
>
> Think of it this way: the port is like a door into a house. You are trying to build another house where one already exists. The http.sys solution is like having the main doorway into a block of flats which is fine as long as you obey the rules of the block's landlord (i.e. you only use HTTP).
>
> So my understanding of what you are tryinng to achieve in terms of the actual application (as opposed to any particular implementation) is to have a web based chat program that is accessible from a browser. You connect to the "server" and I assume you log on in some way so you can be identified in the conversation. The server then "delivers" the messages in the conversation to each of the clients.
>
> ls this the application you are building (or some variant of it)?
>
> Regards
>
> RIchard Blewett - DevelopMentor
>
> http://staff.develop.com/richardb/weblog
>
> nntp://news.microsoft.com/microsoft.public.dotnet.framework/<35538620-7FC3-46B4-9008-4002B385F20F@microsoft.com>
>
> Richard,
>
> Excactly how I keep the connection alive for indefenet is not important for
> my problem. If you are interested to learn how I do it we can engage in a
> seperate discusion about this after I solved my problem.
>
> My problem is that I use a TcpListener on what ever port is not in use. But
> some users can't use many ports other then 80. When I try to have the
> TcpListener listen on port 80 I get this error stating that port is already
> in use or something.
> This is totally bogus and thus I thought of using HTTPhandlers to redirect
> incomming requests and store them.
> Some request get redirected and others are left to any other process that
> wants them like IIS or some other web server.
>
> I really dont feel like lower level c++ winsock programming and want a clean
> way of doing this.
>
> Regards,
>
> DaFou
> "Richard Blewett [DevelopMentor]" wrote:
>
> > The link you provided does not explain how to hold a connection open over HTTP - unless the answers to the query do, but this requires a subscription which I'm not prepared to pay. Is there any other way for me to be able to see the technique that keeps an HTTP based connection active over a long period? As far as I know, any HTTP server is going to nuke the connection from the server side after about 30 seconds of inactivity.
> >
> > Regards
> >
> > Richard Blewett - DevelopMentor
> >
> > http://staff.develop.com/richardb/weblog
> >
> > nntp://news.microsoft.com/microsoft.public.dotnet.framework/<90FD5583-89F9-4847-893B-ABE87226BFB7@microsoft.com>
> >
> > As I explan in the link I provided I CAN keep the connection open using the
> > HTTP protcol. HTTP is nothing more then a pre defined set of commands so HTTP
> > in itself is not stateless. I am not looking to debate wether my ChatServer
> > works or not because it does work.
> > The only problem I have is I use a TcpListener and I cannot use that on port
> > 80 becuase IIS is already listening on that port and I need my program to
> > work on port 80.
> >
> >
> > "Girish Bharadwaj" wrote:
> >
> > > One thing you can probably do is to have a different port based server to
> > > which you make the request to do the connection with the user and maintain
> > > that connection. But, as Richard says, you cannot get there from here.
> > >
> > >
> > > --
> > > Girish Bharadwaj
> > > http://msmvps.com/gbvb
> > > "Richard Blewett [DevelopMentor]" <richardb@develop.com> wrote in message
> > > news:ejE9wNlmEHA.1136@TK2MSFTNGP10.phx.gbl...
> > > > What you NEED and whether the communications protocol you have selected
> > > can support it are two different issues.
> > > >
> > > > HTTP is a stateless protocol. You cannot keep connections open over long
> > > periods (keep-alives are not desined for this).
> > > >
> > > > So sorry, you cannot toake the approach you want with HTTP
> > > >
> > > > Regards
> > > >
> > > > Richard Blewett - DevelopMentor
> > > >
> > > > http://staff.develop.com/richardb/weblog
> > > >
> > > >
> > > >
> > > >
> > > nntp://news.microsoft.com/microsoft.public.dotnet.framework/<4728F0E6-586C-4E87-A5E1-D530EE13C864@microsoft.com>
> > > >
> > > > I NEED to maintain an active connection to be able to create an efficient
> > > > chat application on port 80 without the use of flash or java or active x.
> > > > Please read this link:
> > > http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/Q_21129241.html
> > > > It explains what I want to do.
> > > >
> > > > It comes down to that I have written this very efficient DHTML chat
> > > server
> > > > that maintains an active connection with the browser. But I use a
> > > TcpListener
> > > > to make it work and this means I cannot have the DHTML server work on
> > > port 80.
> > > > So I figured to use HTTPhandler to intercept certain requests on port 80
> > > and
> > > > pass them to the DHTMLchatServer.
> > > >
> > > > Any advice would be welcome
> > > >
> > > >
> > > > "Girish bharadwaj" wrote:
> > > >
> > > > > If you look at the help for HttpContext: " Encapsulates all
> > > HTTP-specific
> > > > > information about an individual HTTP request. ". By definition, Context
> > > is
> > > > > only per request. If you want more that information or want to do
> > > something
> > > > > across invocations, you might have to consider some of the state
> > > management
> > > > > schemes presented by ASP.NET such as Cookies, ViewState, Session
> > > > > ,Application or Cache.
> > > > >
> > > > > --
> > > > > Girish Bharadwaj
> > > > > http://msmvps.com/gbvb
> > > > > "John Saunders" <johnwsaundersiii@notcoldmail.com> wrote in message
> > > > > news:%238$f0zemEHA.2788@TK2MSFTNGP10.phx.gbl...
> > > > > > "daFou" <daFou@discussions.microsoft.com> wrote in message
> > > > > > news:1F690C94-2FB5-43F8-B295-EC981805906E@microsoft.com...
> > > > > > > Hi ALl,
> > > > > > >
> > > > > > > How do I prevent the ProcessRequest method from the IHttpHandler
> > > Class
> > > > > > from
> > > > > > > closing the http connection and killing the context after the
> > > > > > ProcessRequest
> > > > > > > method has ended.
> > > > > > >
> > > > > > > TO further explain what I want please read this link:
> > > > > > >
> > > > > >
> > > > >
> > > http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/Q_21129241.html
> > > > > >
> > > > > > Q: How do I prevent ProcessRequest from closing the connection when
> > > it's
> > > > > > done?
> > > > > > A: You don't
> > > > > >
> > > > > > ASP.NET doesn't work that way. It's all about request/response. Once
> > > the
> > > > > > response has been sent, the request is over and gone, as though it
> > > had
> > > > > never
> > > > > > existed (except for anything persistent which the request may have
> > > done).
> > > > > >
> > > > > > If you need to keep connections open for an indefinite period of
> > > time,
> > > > > then
> > > > > > you need to stop using ASP.NET.
> > > > > > --
> > > > > > John Saunders
> > > > > > johnwsaundersiii at hotmail
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > > ---
> > > > Incoming mail is certified Virus Free.
> > > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > > Version: 6.0.760 / Virus Database: 509 - Release Date: 10/09/2004
> > > >
> > > >
> > > >
> > > > [microsoft.public.dotnet.framework]
> > >
> > >
> > >
> >
> > ---
> > Incoming mail is certified Virus Free.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.760 / Virus Database: 509 - Release Date: 10/09/2004
> >
> >
> >
> > [microsoft.public.dotnet.framework]
> >
>
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.760 / Virus Database: 509 - Release Date: 10/09/2004
>
>
>
> [microsoft.public.dotnet.framework]
>
- Next message: Willy Denoyette [MVP]: "Re: 2.0 Beta on Media Center Edition"
- Previous message: Cor Ligthert: "Re: COBOL file dump..."
- In reply to: Richard Blewett [DevelopMentor]: "Re: HTTPhandlers"
- Next in thread: Girish Bharadwaj: "Re: HTTPhandlers"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|