Skip to content

Releases: AgoraIO-Community/signaling_nodejs

Release list

v2.2.8

Choose a tag to compare

@jayalbo jayalbo released this 11 May 21:52

Agora Signaling (RTM) for Node.js 2.2.8

  • Bundled Agora RTM native SDK upgraded to 2.2.8.
  • Package version now mirrors the native SDK version.
  • getVersion() returns "2.2.8".
  • New: RTMClient.setParameters(json) — synchronous escape hatch for private SDK parameters. Notably accepts {"rtm.extend_channel_name": true} to allow . in channel names (must be called before login()).

What's new under the hood

  • native/ — in-tree C++ shim project (CMake + IRtmEventHandler bridge), ~1,200 lines, exposing the C ABI consumed by the koffi FFI layer on top of the 2.2.8 C++ SDK.
  • prebuilds/<platform>-<arch>/ — prebuilt shim binaries shipped in the npm package.
  • agora_rtm/agora/rtm/sdk_installer.js — postinstall downloads the RTM 2.2.8 SDK zip, extracts the macOS xcframework binaries (or Linux .so files), rewrites macOS install_names to flat @loader_path references, and copies the prebuilt shim alongside.
  • .github/workflows/build-shim.yml — CI matrix building shims for darwin-arm64 and linux-x64.

Platform support

  • macOS arm64
  • Linux x64

Internals

  • 51 agora_rtm_* C ABI functions, byte-equivalent surface to the prior implementation.
  • 47 IRtmEventHandler virtual methods bridged to a JS-owned function-pointer table at the original 376-byte layout.
  • Wire-format quirks preserved (LockEvent / StorageEvent field reorder, unified set/get-metadata signatures across channel/user, onAcquireLockResult arg ordering, etc.).
  • Live-validated end-to-end on darwin-arm64: login + LinkStateEvent, subscribe, publish, cross-client MessageEvent delivery, logout, release.
  • Full unit-test parity (43/43 pass).