Skip to content

examples: Implement XMPP custom signaling client and test suite (Issue #136) - #449

Open
sashakosti wants to merge 3 commits into
ValveSoftware:masterfrom
sashakosti:feat/xmpp-signaling
Open

sashakosti wants to merge 3 commits into
ValveSoftware:masterfrom
sashakosti:feat/xmpp-signaling

Conversation

@sashakosti

Copy link
Copy Markdown

Resolves #136.

Implements an XMPP (Jabber, RFC 6120 / RFC 6121) custom signaling client as outlined in README_P2P.md.

Overview

  • examples/xmpp_signaling_client.h / xmpp_signaling_client.cpp:
    • Implements ISteamNetworkingConnectionSignaling via IXmppSignalingClient.
    • Non-blocking socket transport supporting both Direct TLS (port 5223 via OpenSSL) and plain TCP (port 5222 / local mocks).
    • OpenSSL/TLS support is optional (#if defined(XMPP_HAS_OPENSSL)): compiles cleanly in pure libsodium or Windows BCrypt builds.
    • Minimal streaming XML tag scanner for <message type='chat'> stanzas with Base64 payloads and SASL PLAIN authentication.
  • examples/xmpp_mock_server.py: Lightweight mock XMPP server for automated sandbox testing.
  • tests/test_p2p.cpp: Added --xmpp-signaling <host:port> option with helper validation.
  • tests/test_xmpp_signaling.py: Automated end-to-end integration test verified via CTest.
  • Zero changes to core engine/library ABI.

…ests

- Add IXmppSignalingClient and CXmppSignalingClient in examples/
- Support nonblocking TCP/TLS transport with SASL PLAIN auth and stanza streaming
- Integrate --xmpp-signaling option into test_p2p executable
- Add standalone Python mock server (xmpp_mock_server.py) and end-to-end sandbox test
- Zero core engine modifications or ABI breakage

Closes ValveSoftware#136
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Signaling through XMPP (or other protocols?)

1 participant