08-27-周三_17-09-29

This commit is contained in:
2025-08-27 17:10:05 +08:00
commit 86df397d8f
12735 changed files with 1145479 additions and 0 deletions

30
node_modules/sockjs/examples/test_server/README.md generated vendored Normal file
View File

@@ -0,0 +1,30 @@
SockJS test server
==================
In order to test sockjs server implementation the server needs to
provide a standarized sockjs endpoint that will can used by various
sockjs-related tests. For example by QUnit or
[Sockjs-protocol](https://github.com/sockjs/sockjs-protocol) tests.
This small code does exactly that - runs a simple server that supports
the following SockJS services:
* `/echo`
* `/disabled_websocket_echo`
* `/cookie_needed_echo`
* `/close`
* `/ticker`
* `/amplify`
* `/broadcast`
If you just want to quickly run it:
npm install
node server.js
If you want to run do development it's recommended to run `make
test_server` from the top `sockjs-node` directory:
cd ../..
make test_server

9
node_modules/sockjs/examples/test_server/config.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
exports.config = {
server_opts: {
sockjs_url: 'http://localhost:8080/lib/sockjs.js',
websocket: true
},
port: 8081,
host: '0.0.0.0'
};

View File

@@ -0,0 +1,7 @@
{
"name": "sockjs-test-server",
"version": "0.0.0-unreleasable",
"dependencies": {
"sockjs": "*"
}
}

19
node_modules/sockjs/examples/test_server/server.js generated vendored Normal file
View File

@@ -0,0 +1,19 @@
var http = require('http');
var config = require('./config').config;
var sockjs_app = require('./sockjs_app');
var server = http.createServer();
server.addListener('request', function(req, res) {
res.setHeader('content-type', 'text/plain');
res.writeHead(404);
res.end('404 - Nothing here (via sockjs-node test_server)');
});
server.addListener('upgrade', function(req, res){
res.end();
});
sockjs_app.install(config.server_opts, server);
console.log(" [*] Listening on", config.host + ':' + config.port);
server.listen(config.port, config.host);

85
node_modules/sockjs/examples/test_server/sockjs_app.js generated vendored Normal file
View File

@@ -0,0 +1,85 @@
var sockjs = require('sockjs');
exports.install = function(opts, server) {
var sjs_echo = sockjs.createServer(opts);
sjs_echo.on('connection', function(conn) {
console.log(' [+] echo open ' + conn);
conn.on('close', function() {
console.log(' [-] echo close ' + conn);
});
conn.on('data', function(m) {
var d = JSON.stringify(m);
console.log(' [ ] echo message ' + conn,
d.slice(0,64)+
((d.length > 64) ? '...' : ''));
conn.write(m);
});
});
var sjs_close = sockjs.createServer(opts);
sjs_close.on('connection', function(conn) {
console.log(' [+] clos open ' + conn);
conn.close(3000, "Go away!");
conn.on('close', function() {
console.log(' [-] clos close ' + conn);
});
});
var sjs_ticker = sockjs.createServer(opts);
sjs_ticker.on('connection', function(conn) {
console.log(' [+] ticker open ' + conn);
var tref;
var schedule = function() {
conn.write('tick!');
tref = setTimeout(schedule, 1000);
};
tref = setTimeout(schedule, 1000);
conn.on('close', function() {
clearTimeout(tref);
console.log(' [-] ticker close ' + conn);
});
});
var broadcast = {};
var sjs_broadcast = sockjs.createServer(opts);
sjs_broadcast.on('connection', function(conn) {
console.log(' [+] broadcast open ' + conn);
broadcast[conn.id] = conn;
conn.on('close', function() {
delete broadcast[conn.id];
console.log(' [-] broadcast close' + conn);
});
conn.on('data', function(m) {
console.log(' [-] broadcast message', m);
for(var id in broadcast) {
broadcast[id].write(m);
}
});
});
var sjs_amplify = sockjs.createServer(opts);
sjs_amplify.on('connection', function(conn) {
console.log(' [+] amp open ' + conn);
conn.on('close', function() {
console.log(' [-] amp close ' + conn);
});
conn.on('data', function(m) {
var n = Math.floor(Number(m));
n = (n > 0 && n < 19) ? n : 1;
console.log(' [ ] amp message: 2^' + n);
conn.write(Array(Math.pow(2, n)+1).join('x'));
});
});
sjs_echo.installHandlers(server, {prefix:'/echo',
response_limit: 4096}),
sjs_echo.installHandlers(server, {prefix:'/disabled_websocket_echo',
websocket: false});
sjs_echo.installHandlers(server, {prefix:'/cookie_needed_echo',
jsessionid: true});
sjs_close.installHandlers(server, {prefix:'/close'});
sjs_ticker.installHandlers(server, {prefix:'/ticker'});
sjs_amplify.installHandlers(server, {prefix:'/amplify'});
sjs_broadcast.installHandlers(server, {prefix:'/broadcast'});
};