NodeJs 实现简单 WebSocket 即时通讯
服务器的实现很简单,先装一个nodeJs
的模块nodejs-websocket
, 直接使用npm
安装:
npm install nodejs-websocket
1
然后就可以开始建立服务器了,因为有了nodejs-websocket
模块,所以很多工作都不用我们自己做。
# 服务端代码
var ws = require("nodejs-websocket");
console.log("开始建立连接...")
var game1 = null,game2 = null , game1Ready = false , game2Ready = false;
var server = ws.createServer(function(conn){
console.log(conn.path);
conn.on("text", function (str) {
console.log("收到的信息为:"+str)
if(str==="game1"){
game1 = conn;
game1Ready = true;
conn.sendText("success");
}
if(str==="game2"){
game2 = conn;
game2Ready = true;
}
if(game1Ready&&game2Ready){
game2.sendText(str);
}
conn.sendText(str)
})
conn.on("asd", function (str) {
console.log("Received " + str);
conn.send('dsdsd')
})
conn.on("close", function (code, reason) {
console.log("关闭连接")
});
conn.on("error", function (code, reason) {
console.log("异常关闭")
});
}).listen(8001)
console.log("WebSocket建立完毕")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 客户端代码
let socket = new WebSocket(`ws://localhost:3006/console/ffgh`);
socket.onopen = () => {
console.log("socket连接成功");
// setInterval(()=>{
// // conn.sendText("已连接到应用服务器,正在部署...")
// // socket.send('asd','email');
// // socket.send('text','text');
// },500)
};
socket.onmessage = (e) => {
console.log("message: "); //打印出服务端返回过来的数据
};
// 监听socket错误信息
socket.onerror = () => {
console.log("连接错误");
};
socket.onclose = () => {
console.log("连接关闭");
};
// 监听socket消息
socket.onmessage = (msg) => {
console.log(msg);
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
上次更新: 2024/01/30, 00:35:17
- 01
- Node与GLIBC_2.27不兼容解决方案08-19
- 02
- Git清空本地文件跟踪缓存08-13