Foxtable(狐表)用户栏目专家坐堂 → 如何实现 Server-Sent 事件允许网页从服务器获得更新


  共有7342人关注过本帖树形打印复制链接

主题:如何实现 Server-Sent 事件允许网页从服务器获得更新

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/6 10:12:00 [显示全部帖子]

没玩过,网上搜索吧:https://www.baidu.com/baidu?ie=UTF-8&word=Server-Sent

Foxtable估计做不了


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/6 10:24:00 [显示全部帖子]

试试

将HttpRequest事件代码改为:

Select Case e.Path
    Case "list.htm"
        
e.AsyncExecute = True  
'
通知系统,将采用异步方式生成网页
        Functions.AsyncExecute("xx函数", e) 
'
异步调用函数生成网页
End
 Select


函数

Dim e As RequestEventArgs = args(0)

e.Response.AddHeader("Content-Type", "text/event-stream")

e.Response.AddHeader("Cache-Control", ........

……

Do While(True)

    If 符合某个条件 Then 

    Dim postData As Byte() = Encoding.Default.GetBytes("data:需要发送的内容\n\n")

    Dim reqStream As System.IO.Stream = e.Response.OutputStream

    reqStream.Write(postData, 0, postData.Length)

    reqStream.Flush()

    Else

        Exit Do

    End If

Loop 

e.WriteString("data:发送完毕\n\n")

e.Handled = True '通    知系统异步函数执行完毕,可以关闭信道


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/6 11:13:00 [显示全部帖子]

升级到新版编辑器才会有这个提示

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/7 9:42:00 [显示全部帖子]

1、

e.Response.AddHeader("Content-Type", "text/event-stream")

e.Response.AddHeader("Cache-Control", ........

……这里还有其它头部内容,参考网上搜索的用法补充完整

2、
不要do循环就去掉下面代码
e.WriteString("data:发送完毕\n\n") 

 回到顶部