stun_shsp 0.5.1 copy "stun_shsp: ^0.5.1" to clipboard
stun_shsp: ^0.5.1 copied to clipboard

Combines STUN (RFC 5389) and SHSP protocols into a unified handler for NAT traversal and peer-to-peer UDP communication. Supports dual IPv4/IPv6 stacks, runtime socket migration, optional compression, [...]

example/example.dart

// ignore_for_file: avoid_print
import 'config_example.dart';
import 'dual_stun_shsp_handler_example.dart';
import 'nat_detector_shsp_example.dart';
import 'registry_example.dart';
import 'stun_shsp_handler_example.dart';

Future<void> main() async {
  // --- Configuration ---
  print('--- Configuration ---\n');
  defaultConfigExample();
  initConfigExample();
  nestedDocumentExample();
  jsonConfigExample();
  configExtensionExample();

  // --- StunShspHandler constructors ---
  print('\n--- StunShspHandler constructors ---\n');
  await stunShspHandlerConstructorExample();
  await stunShspHandlerConstructorWithStunServerExample();
  await stunShspHandlerCreateDefaultIpv4Example();
  await stunShspHandlerCreateDefaultIpv6Example();
  await stunShspHandlerCreateDefaultPortExample();
  await stunShspHandlerCreateDefaultFromConfigExample();
  await stunShspHandlerCreateDefaultCodecExample();

  // --- StunShspHandler own getters ---
  print('\n--- StunShspHandler own getters ---\n');
  await stunShspHandlerStunHandlerGetterExample();
  await stunShspHandlerShspSocketGetterExample();
  await stunShspHandlerDelegateSocketGetterExample();
  await stunShspHandlerDelegateStunHandlerGetterExample();

  // --- StunShspHandler own methods ---
  print('\n--- StunShspHandler own methods ---\n');
  await stunShspHandlerMigrateSocketExample();
  await stunShspHandlerCloseExample();
  await stunShspHandlerDestroyExample();

  // --- StunShspHandler StunHandlerDelegationMixin ---
  print('\n--- StunShspHandler StunHandlerDelegationMixin ---\n');
  await stunShspHandlerPerformStunRequestExample();
  await stunShspHandlerPerformLocalRequestExample();
  await stunShspHandlerPingStunServerExample();
  await stunShspHandlerSetStunServerExample();
  await stunShspHandlerGetSocketExample();
  await stunShspHandlerLastStunUpdatedExample();
  await stunShspHandlerLastLocalUpdatedExample();

  // --- StunShspHandler ShspSocketMigratableDelegationMixin ---
  print('\n--- StunShspHandler ShspSocketMigratableDelegationMixin ---\n');
  await stunShspHandlerPortExample();
  await stunShspHandlerAddressExample();
  await stunShspHandlerSocketFlagsExample();
  await stunShspHandlerLocalAddressExample();
  await stunShspHandlerCompressionCodecExample();
  await stunShspHandlerIsClosedExample();
  await stunShspHandlerProfileExample();
  await stunShspHandlerRawSocketExample();
  await stunShspHandlerSerializedObjectExample();

  // --- DualStunShspHandler constructors ---
  print('\n--- DualStunShspHandler constructors ---\n');
  await dualStunShspHandlerConstructorExample();
  await dualStunShspHandlerFromMigratableExample();
  await dualStunShspHandlerCreateDefaultExample();
  await dualStunShspHandlerCreateDefaultPortsExample();
  await dualStunShspHandlerCreateDefaultCodecExample();

  // --- DualStunShspHandler own getters ---
  print('\n--- DualStunShspHandler own getters ---\n');
  await dualStunShspHandlerStunShspGettersExample();
  await dualStunShspHandlerSocketGettersExample();
  await dualStunShspHandlerDualStunHandlerExample();

  // --- DualStunShspHandler own methods ---
  print('\n--- DualStunShspHandler own methods ---\n');
  await dualStunShspHandlerRefreshSocketExample();
  await dualStunShspHandlerRefreshSocketsExample();
  await dualStunShspHandlerMigrateSocketIpv4Example();
  await dualStunShspHandlerMigrateSocketExample();
  await dualStunShspHandlerCloseExample();
  await dualStunShspHandlerDestroyExample();

  // --- DualStunShspHandler DualStunHandlerDelegationMixin ---
  print('\n--- DualStunShspHandler DualStunHandlerDelegationMixin ---\n');
  await dualStunShspHandlerPerformStunRequestExample();
  await dualStunShspHandlerPerformLocalRequestExample();
  await dualStunShspHandlerPingStunServerExample();
  await dualStunShspHandlerSetStunServerExample();
  await dualStunShspHandlerHandlerSlotsExample();
  await dualStunShspHandlerTimestampsExample();

  // --- DualStunShspHandler as a dual SHSP socket ---
  print('\n--- DualStunShspHandler as a dual SHSP socket ---\n');
  await dualStunShspHandlerSendToExample();
  await dualStunShspHandlerProfileExample();
  await dualStunShspHandlerSerializedObjectExample();
  await dualStunShspHandlerCallbacksExample();

  // --- Dependency injection / registry ---
  print('\n--- Dependency injection / registry ---\n');
  await initializeStunShspExample();
  await sharedGraphsExample();
  await stunShspInjectorExample();
  await connectStunShspHandlerSubkeysExample();
  await multipleGraphsExample();

  // --- NATDetectorShsp ---
  print('\n--- NATDetectorShsp ---\n');
  await natDetectorShspConstructorExample();
  await natDetectorShspFromConfigExample();
  await natDetectorShspOnHandlerSocketExample();
  await natDetectorShspNatShspCompatibilityExample();
}
0
likes
145
points
151
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Combines STUN (RFC 5389) and SHSP protocols into a unified handler for NAT traversal and peer-to-peer UDP communication. Supports dual IPv4/IPv6 stacks, runtime socket migration, optional compression, and dependency injection.

Repository (GitHub)
View/report issues

Topics

#stun #nat #udp #networking #peer-to-peer

License

LGPL-3.0 (license)

Dependencies

config_manager, shsp, singleton_manager, stun

More

Packages that depend on stun_shsp