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

69
node_modules/dnode/test/broadcast.js generated vendored Normal file
View File

@@ -0,0 +1,69 @@
var dnode = require('../');
var EventEmitter = require('events').EventEmitter;
var test = require('tape');
test('broadcast', function (t) {
t.plan(3);
var em = new EventEmitter;
var server = function () {
return dnode(function (client, conn) {
conn.on('ready', function () {
em.on('message', client.message);
});
conn.on('end', function () {
em.removeListener('message', client.message);
});
this.message = function (msg) {
em.emit('message', client.name + ' says: ' + msg);
};
});
};
var recv = { 0 : [], 1 : [], 2 : [] };
var client0 = dnode({
name : '#0',
message : function (msg) { recv[0].push(msg) }
});
client0.on('remote', function (remote) {
setTimeout(function () {
remote.message('hello!');
}, 25);
});
client0.pipe(server()).pipe(client0);
var client1 = dnode({
name : '#1',
message : function (msg) { recv[1].push(msg) }
});
client1.on('remote', function (remote) {
setTimeout(function () {
remote.message('hey');
}, 50);
});
client1.pipe(server()).pipe(client1);
var client2 = dnode({
name : '#2',
message : function (msg) { recv[2].push(msg) }
});
client2.on('remote', function (remote) {
setTimeout(function () {
remote.message('wowsy');
}, 75);
});
client2.pipe(server()).pipe(client2);
setTimeout(function () {
t.deepEqual(
recv[0],
[ '#0 says: hello!', '#1 says: hey', '#2 says: wowsy' ],
"#0 didn't get the right messages"
);
t.deepEqual(recv[0], recv[1], "#1 didn't get the messages");
t.deepEqual(recv[0], recv[2], "#2 didn't get the messages");
}, 150);
});