VB.NET HTTP LAG!试图自己创建一个IM客户端

时间:2010-01-31 20:23:57

标签: vb.net

我最近开发并完成了一个像目标一样的软件。 但问题是,服务器对本地朋友来说效果很好,因为他们距离服务器只有25英里,所以它没有延迟。 但是当上传到Web主机时,每次ping服务器时都会滞后。 该服务器采用PHP格式,因此无需再以400美元/月的价格购买专用计算机。 这是客户经常要求的功能:

Public Function GetPage(ByVal url As String)
    Dim WReq As HttpWebRequest
    Dim WResp As WebResponse
    Dim sr As IO.StreamReader

    Try
        WReq = WebRequest.Create(url)
        WReq.CookieContainer = cookies
        WReq.Timeout = "120000"
        WResp = WReq.GetResponse()
        sr = New IO.StreamReader(WResp.GetResponseStream())

        GetPage = sr.ReadToEnd()

        WResp.Close()
        Return (GetPage)
    Catch err As SystemException
        MsgBox("err message: " & err.ToString & vbCrLf)

    Catch ex As Exception
        MsgBox("err message: " & ex.ToString & vbCrLf)

    End Try
End Function

演示网址会是这样的 http://localhost/chat/newpm.php?to=User&msg=Hello 那么OSCAR是如何做到的(AOL的平台,又称AIM) 和msg怎么样? gtalk或其他大客户这样做吗?

我正在考虑重新编码getpage函数,以便它连接到TCP服务器并不断等待新消息,如果主机在美国并且客户端不在,那么我仍然不确定这是否会导致延迟(例如)。 你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

超时非常高。在收到响应流后检查应用是否关闭连接。计算机接受多少个连接,否则连接将锁定请求,直到一个空闲为止。

答案 1 :(得分:0)

好的回答John Feminella: 我完全同意,AIM MSN和其他人如何解决这个问题呢? Dbasnett:return(GetPage)将返回所请求页面的结果,这只是代码的主要信息,每秒至少调用两次。 约翰桑德斯: 我不明白“使用”块的目的或功能,我添加了catch,以便在服务器超时或无法解析时不通知用户。 Sein Kraft: 超时只有2分钟,我不认为 GetPage(Login.server&“pms.php?to =”& to) 这就是全部,然后它会解析响应的结果。