File tree Expand file tree Collapse file tree 4 files changed +58
-4
lines changed Expand file tree Collapse file tree 4 files changed +58
-4
lines changed Original file line number Diff line number Diff line change @@ -287,13 +287,17 @@ int Handler::upload(const HttpContextPtr& ctx) {
287
287
288
288
int Handler::sse (const HttpContextPtr& ctx) {
289
289
ctx->writer ->EndHeaders (" Content-Type" , " text/event-stream" );
290
- // send(time ) every 1s
290
+ // send(message ) every 1s
291
291
hv::setInterval (1000 , [ctx](hv::TimerID timerID) {
292
292
char szTime[DATETIME_FMT_BUFLEN] = {0 };
293
293
datetime_t now = datetime_now ();
294
294
datetime_fmt (&now, szTime);
295
- ctx->writer ->write (" event: timeout\n " );
296
- ctx->writer ->write (hv::asprintf (" data: %s\n\n " , szTime));
295
+ // @test html/EventSource.html EventSource.onmessage
296
+ std::string msg (" event: message\n " );
297
+ msg += " data: " ;
298
+ msg += szTime;
299
+ msg += " \n\n " ;
300
+ ctx->writer ->write (msg);
297
301
});
298
302
return HTTP_STATUS_UNFINISHED;
299
303
}
Original file line number Diff line number Diff line change @@ -135,5 +135,5 @@ void Router::Register(hv::HttpService& router) {
135
135
router.POST (" /upload" , Handler::upload);
136
136
137
137
// SSE: Server Send Events
138
- router.GET (" /SSE " , Handler::sse);
138
+ router.GET (" /sse " , Handler::sse);
139
139
}
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE HTML>
2
+ < html >
3
+
4
+ < head >
5
+ < meta charset ="utf-8 ">
6
+ < title > EventSource客户端</ title >
7
+
8
+ < script type ="text/javascript ">
9
+ function EventSourceTest ( url )
10
+ {
11
+ if ( typeof ( EventSource ) !== "undefined" )
12
+ {
13
+ var es = new EventSource ( url ) ;
14
+
15
+ es . onopen = function ( )
16
+ {
17
+ alert ( "连接已建立" ) ;
18
+ } ;
19
+
20
+ es . onmessage = function ( ev )
21
+ {
22
+ console . log ( "received event: " + ev . data ) ;
23
+ var li = document . createElement ( "li" ) ;
24
+ li . innerHTML = ev . data ;
25
+ document . getElementById ( "msg_list" ) . appendChild ( li ) ;
26
+ } ;
27
+
28
+ es . onerror = function ( e )
29
+ {
30
+ alert ( "连接断开" ) ;
31
+ } ;
32
+ }
33
+ else
34
+ {
35
+ alert ( "您的浏览器不支持 EventSource!" ) ;
36
+ }
37
+ }
38
+ </ script >
39
+ </ head >
40
+
41
+ < body >
42
+ URL: < input type ="text " id ="url " value ="http://127.0.0.1:8080/sse " style ="width:300px; ">
43
+ < button onclick ="EventSourceTest(document.getElementById('url').value) "> 运行 EventSource</ button >
44
+ < div >
45
+ < ul id ="msg_list " style ="height:500px;overflow-y:scroll; ">
46
+ </ ul >
47
+ < div >
48
+ </ body >
49
+
50
+ </ html >
File renamed without changes.
You can’t perform that action at this time.
0 commit comments