使用nodejs创建websocket服务是非常简单的(”ws”模块等),网上教程也很多。websocket服务默认没有连接验证,再加上它支持跨域连接,这样就存在“盗连”和并发攻击的风险。
nodejs的”ws”模块提供了一个verifyClient回调方法,可以在客户端连接时,获取到连接信息如url等。这样我们就可以在连接url中加入自己的验证信息(用户名、密码等)。直接上代码:
************************************************************
后端:MyWs.js
var util = require('util');
var url = require('url');
var server = require('ws').Server;
var wss = new server({ port: 8181,verifyClient: ClientVerify });
wss.on('connection', function (ws){
console.log('client connected');
ws.on('message', function (message) {
ws.send("message received!");
});
ws.on('close', function (close) {
console.log("client closed&#