![]() |
一直以来,如何用 asp 技术实现推技术的聊天室,都是困扰 asp
程序员的一个难题。不同的解决方案,不同的尝试,结果却一直不能令人满意,主要有以下几个问题:
一、iis
的线程问题。由于推技术的实现必须以独立线程为基础,即每一个推连接必须占用一个线程,直至此连接结束为止。iis
的 asp 是基于 isapi 技术的,而 isapi
在实现时有着严格的线程限制,只能创建很少的线程,直接导致了很少的推连接数。
二、推线程的等待问题。正是因为 iis 在 isapi 管理上面的限制,asp
在实现时是假设程序是绝对不会进入等待的,所以在 asp
中间隔一段时间几乎是不可能的。于是有些开发人员为了实现延时效果,采用了不断判断时间的死循环的方法。殊不知这种循环几乎只需要一个就足以吃掉全部的
cpu 资源。
而使用 NetBox 则没有此类问题。NetBox
的实现采用了自由线程,可创建的线程总数只受限于系统限制,远远高于
iis 的线程限制,在 asp 中适当等待已经不再成为问题。同时 NetBox 的
asp 支持一个新的 NetBox 内建对象,所包含的 Sleep 方法更加方便的实现低负载的等待。
下面就是一段简单的推技术的演示代码:
<%Response.Buffer = false%> <html> <body> <br> <%Do While Response.IsClientConnected NetBox.Sleep 1000 Response.Write now & "<br>" Loop%>