File tree Expand file tree Collapse file tree 8 files changed +153
-0
lines changed Expand file tree Collapse file tree 8 files changed +153
-0
lines changed Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+ < head >
4
+ < meta charset ="UTF-8 ">
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
6
+ < meta http-equiv ="X-UA-Compatible " content ="ie=edge ">
7
+ < title > Document</ title >
8
+ </ head >
9
+ < body >
10
+ < div id ="clock "> </ div >
11
+ < iframe src ="/clock " style ="display:none "> </ iframe >
12
+ </ body >
13
+ </ html >
Original file line number Diff line number Diff line change
1
+ //iframe流
2
+ let express = require ( 'express' )
3
+ let app = express ( )
4
+ app . use ( express . static ( __dirname ) )
5
+ app . get ( '/clock' , function ( req , res ) {
6
+ setInterval ( function ( ) {
7
+ let date = new Date ( ) . toLocaleString ( )
8
+ res . write ( `
9
+ <script type="text/javascript">
10
+ parent.document.getElementById('clock').innerHTML = "${ date } ";
11
+ </script>
12
+ ` )
13
+ } , 1000 )
14
+ } )
15
+ app . listen ( 8080 )
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+ < head >
4
+ < meta charset ="UTF-8 " />
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
6
+ < meta http-equiv ="X-UA-Compatible " content ="ie=edge " />
7
+ < title > websocket</ title >
8
+ </ head >
9
+ < body >
10
+ < div id ="clock "> </ div >
11
+ < script >
12
+ let clockDiv = document . getElementById ( 'clock' )
13
+ let socket = new WebSocket ( 'ws://localhost:9999' )
14
+ //当连接成功之后就会执行回调函数
15
+ socket . onopen = function ( ) {
16
+ console . log ( '客户端连接成功' )
17
+ //再向服务 器发送一个消息
18
+ socket . send ( 'hello' ) //客户端发的消息内容 为hello
19
+ }
20
+ //绑定事件是用加属性的方式
21
+ socket . onmessage = function ( event ) {
22
+ clockDiv . innerHTML = event . data
23
+ console . log ( '收到服务器端的响应' , event . data )
24
+ }
25
+ </ script >
26
+ </ body >
27
+ </ html >
Original file line number Diff line number Diff line change
1
+ let express = require ( 'express' )
2
+ let app = express ( )
3
+ app . use ( express . static ( __dirname ) )
4
+ //http服务器
5
+ app . listen ( 3000 )
6
+
7
+ let WebSocketServer = require ( 'ws' ) . Server
8
+ //用ws模块启动一个websocket服务器,监听了9999端口
9
+ let wsServer = new WebSocketServer ( { port : 9999 } )
10
+ //监听客户端的连接请求 当客户端连接服务器的时候,就会触发connection事件
11
+ //socket代表一个客户端,不是所有客户端共享的,而是每个客户端都有一个socket
12
+ wsServer . on ( 'connection' , function ( socket ) {
13
+ //每一个socket都有一个唯一的ID属性
14
+ console . log ( socket )
15
+ console . log ( '客户端连接成功' )
16
+ //监听对方发过来的消息
17
+ socket . on ( 'message' , function ( message ) {
18
+ console . log ( '接收到客户端的消息' , message )
19
+ socket . send ( '服务器回应:' + message )
20
+ } )
21
+ } )
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+ < head >
4
+ < meta charset ="UTF-8 ">
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
6
+ < meta http-equiv ="X-UA-Compatible " content ="ie=edge ">
7
+ < title > Document</ title >
8
+ </ head >
9
+ < body >
10
+ < div id ="clock "> </ div >
11
+ < script >
12
+ let clockDiv = document . getElementById ( 'clock' ) ;
13
+ setInterval ( function ( ) {
14
+ let xhr = new XMLHttpRequest ;
15
+ xhr . open ( 'GET' , '/clock' , true ) ;
16
+ xhr . onreadystatechange = function ( ) {
17
+ if ( xhr . readyState == 4 && xhr . status == 200 ) {
18
+ console . log ( xhr . responseText ) ;
19
+ clockDiv . innerHTML = xhr . responseText ;
20
+ }
21
+ }
22
+ xhr . send ( ) ;
23
+ } , 1000 ) ;
24
+ </ script >
25
+ </ body >
26
+ </ html >
Original file line number Diff line number Diff line change
1
+ //轮训
2
+ let express = require ( 'express' )
3
+ let app = express ( )
4
+ app . use ( express . static ( __dirname ) )
5
+ app . get ( '/clock' , function ( req , res ) {
6
+ res . end ( new Date ( ) . toLocaleString ( ) )
7
+ } )
8
+ app . listen ( 8080 )
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+ < head >
4
+ < meta charset ="UTF-8 " />
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
6
+ < meta http-equiv ="X-UA-Compatible " content ="ie=edge " />
7
+ < title > Document</ title >
8
+ </ head >
9
+ < body >
10
+ < div id ="clock "> </ div >
11
+ < script >
12
+ let clockDiv = document . getElementById ( 'clock' )
13
+ function send ( ) {
14
+ let xhr = new XMLHttpRequest ( )
15
+ xhr . open ( 'GET' , '/clock' , true )
16
+ xhr . timeout = 2000 // 超时时间,单位是毫秒
17
+ xhr . onreadystatechange = function ( ) {
18
+ if ( xhr . readyState == 4 ) {
19
+ if ( xhr . status == 200 ) {
20
+ //如果返回成功了,则显示结果
21
+ clockDiv . innerHTML = xhr . responseText
22
+ }
23
+ //不管成功还是失败都会发下一次请求
24
+ send ( )
25
+ }
26
+ }
27
+ xhr . ontimeout = function ( ) {
28
+ send ( )
29
+ }
30
+ xhr . send ( )
31
+ }
32
+ send ( )
33
+ </ script >
34
+ </ body >
35
+ </ html >
Original file line number Diff line number Diff line change
1
+ //长轮训
2
+ let express = require ( 'express' )
3
+ let app = express ( )
4
+ app . use ( express . static ( __dirname ) )
5
+ app . get ( '/clock' , function ( req , res ) {
6
+ res . end ( new Date ( ) . toLocaleString ( ) )
7
+ } )
8
+ app . listen ( 8080 )
You can’t perform that action at this time.
0 commit comments