nodejs-slikenet
Version:
Node.js native addon for SLikeNet networking library with improved thread management architecture
81 lines (65 loc) • 2.65 kB
JavaScript
const { SlikeNetPeer } = require('./index');
// Пример использования новой архитектуры
async function example() {
console.log('=== SlikeNet New Architecture Example ===\n');
// Создаем peer
const peer = new SlikeNetPeer();
// Инициализируем
if (!peer.initialize(32)) {
console.error('Failed to initialize peer');
return;
}
console.log('✓ Peer initialized');
// Запускаем
if (!peer.startup(32, 0)) {
console.error('Failed to startup peer');
return;
}
console.log('✓ Peer started');
// Подписываемся на системные события
peer.on('connect', () => {
console.log('🎉 Connected to server!');
});
peer.on('disconnect', () => {
console.log('💔 Disconnected from server');
});
// Подписываемся на конкретные packet ID
peer.listen(100, (data) => {
console.log('📦 Received packet ID 100:', data);
});
peer.listen(101, (data) => {
console.log('📦 Received packet ID 101:', data);
});
peer.listen(102, (data) => {
console.log('📦 Received packet ID 102:', data);
});
// Подключаемся к серверу
console.log('🔌 Connecting to server...');
const result = peer.connect('127.0.0.1', 1234);
console.log('Connection result:', result);
// Отправляем данные
setTimeout(() => {
if (peer.isConnected()) {
console.log('📤 Sending data...');
peer.send('Hello from new architecture!');
}
}, 1000);
// Через некоторое время отписываемся от одного слушателя
setTimeout(() => {
console.log('🔇 Removing listener for packet ID 101');
// peer.removeListener(101, handler); // Нужно сохранить ссылку на handler
}, 5000);
// Через некоторое время отписываемся от всех
setTimeout(() => {
console.log('🔇 Removing all listeners');
peer.removeAllListeners();
}, 10000);
// Через некоторое время отключаемся
setTimeout(() => {
console.log('🔌 Shutting down...');
peer.shutdown();
console.log('✓ Example completed');
}, 15000);
}
// Запускаем пример
example().catch(console.error);