/*
*这是运行在NodeJS上的服务器端JavaScript
*在HTTP服务器之上,它运行-个WebSocket服务器,该服务器使用来自
* https://github . com/ miksago/ node -websocket- server/的第三方WebSocket库实现
如果得到" /"的- -个HTTP请求,则返回聊天客户端的HTML文件
除此之外任何HTTP请求都返回404
*通过WebSocket协 议接收到的消息都仅广播给所有激活状态的连接
*/
var http = require('http');
//使用Node的HTTP服务器API
var WS = require('websocket-server'); // 使用第三方WebSocket库
//启动阶段,读取聊天客户端的资源文件
var clientui = require(' fs').readFileSync("wschatclient.html");
//创建一个HTTP服务器
var httpserver = new http.Server();
//当HTTP服 务器获得-一个新请求时,运行此函数
httpserver.on("request", function (request, response) {
//如果请求"/",则返回客户端聊天UI
if (request.url === "/") { //请求聊天UI
response.writeHead(200, {
"Content-Type": "text/html"
});
response.write(clientui);
response.end();
} else { //对任何其他的请求返回404"无法找到"编码
response.writeHead(404);
response.end();
});
//在HTTP服务器上包装- -个WebSocket服务器
var Wsserver = WS.createServer({
server: httpserver
});
//当接收到一个新的连接请求的时候,调用此函数
WS server.on(" connection", function (socket) {
socket.send("Welcome to the chat room."); //向新客户端打招呼
socket.on("message", function (msg) { // 监听来自客户端的消息
wsserver.broadcast(msg);
//并将它们广播给每个人
});
});
//在8000端口运行服务器。启动WebSocket服 务器的时候也会启动HTTP服务器
//连接到http://localhost:8000/,并开始使用它
wsserver.listen(8000);
使用WebSocket和Node的聊天服务器
最新推荐文章于 2023-04-28 13:48:46 发布