Releases: ProjectSky/sm-ext-websocket
Release 1.0.8
feat: add TLS/SSL configuration, proxy support, and connection statistics
Major features:
- Add TLS/SSL configuration API for WebSocket client, server, and HTTP requests
- SetTLSCertAndKey, SetTLSCAFile, SetTLSCiphers methods
- HostnameValidation property for certificate verification
- Add proxy support (HTTP/HTTPS/SOCKS5) for WebSocket and HTTP clients
- SetProxy, ClearProxy methods and HasProxy property
- Add connection statistics for WebSocket client (for debug)
- MessagesSent/Received, BytesSent/Received, PingsSent/Received, etc.
- Add timeout configuration options
- PingTimeout, IdleTimeout, SendTimeout, CloseTimeout, HandshakeTimeout
- Add HTTP authentication methods (SetBasicAuth, SetBearerAuth, ClearAuth)
- Add WebSocket subprotocol support (AddSubProtocol, RemoveSubProtocol, ClearSubProtocols)
- Add connection pooling and keep-alive options for HTTP requests
- Add write_flg parameter to WriteJSON for JSON formatting control (closes #10)
Build system: - Rebuild OpenSSL static libraries
- Add NOMINMAX define for Windows to fix std::min/max conflicts
- Add /ignore:4099 linker flag to suppress PDB warnings
Refactoring: - Rename ws_natives.cpp to ws_natives_client.cpp for clarity
- Split ws.inc into ws_client.inc and ws_server.inc for better organization
- Convert IXWebSocket and zlib to git submodules
- Move AMBuilder files for third-party libraries to root third_party directory
- Rename WebsocketState enum to WebSocketState for consistency
- Replace DisableDeflate/IsDeflateEnabled with PerMessageDeflate property
- Change default ping interval to -1 (disabled) for WebSocket server
Documentation: - Update README with proxy support, SSL dependencies, and build instructions
- Add comprehensive API documentation for new features
- Add WSS (WebSocket Secure) server example script
- Note about forked IXWebSocket with core modifications
Release 1.0.7
refactor: replace yyjson with json extension and update related functionality
- Removed the dependency on the bundled yyjson library, replacing it with the sm-ext-json extension
- Updated all references from YYJSON to JSON in the codebase, including method signatures and variable types
- Adjusted HTTP request methods to utilize the new JSON handling interface
- Enhanced task context management for WebSocket and HTTP operations to ensure proper cleanup and ownership
- Updated documentation and README to reflect the changes in dependencies and usage instructions
Release 1.0.6
feat: use sm-ext-yyjson extension interface instead of bundled library
- Replace bundled yyjson library with sm-ext-yyjson extension interface
- Add sm-ext-yyjson as required dependency
- Add installation instructions for setting up dependencies
- Update TODO to mark extension interface implementation as completed
BREAKING CHANGE: Users must now install sm-ext-yyjson extension separately
Release 1.0.5
fix(websocket): correct message length handling in WebSocket callbacks (fixes #9)
- Remove +1 from initial messageLength calculation to use actual content length
- Add +1 only when pushing length to script callbacks
chore(deps): update dependencies to latest versions
- Update IXWebSocket to v11.4.6
- Update yyjson to v0.11.1
- Update zlib to v1.3.1
docs: update documentation for message length handling
- Add clarification about null terminator in message length parameter
Release 1.0.4a
feat(http): improved http related functions
- Add PostJson, PostForm, PutJson, PatchJson methods
- Add form parameter handling with AppendFormParam
- Remove generic GET methods
- Add URL encoding support for form parameters
- Update method signatures in header files
- Update native bindings
- Add comprehensive test script for HTTP client
- Include examples for all HTTP methods
- Add form data and JSON payload examples
- Add response handling examples
- Add header manipulation examples
- Use httpbin.org as test endpoint
This change improves the HTTP client API by providing more specific
and type-safe methods for different request body types
Release 1.0.4
refactor: task queue system
Changes include:
- Added ITaskContext interface for handling WebSocket and Http tasks
- Created specialized task context classes for different WebSocket events
- Implemented ThreadSafeQueue<ITaskContext *> g_TaskQueue for thread-safe task management
- Added WebsocketExtension::AddWsTaskToQueue method to queue tasks
- Extract duplicate remote address logic to static helper method
Release 1.0.3
ver 1.0.3
Sync changes from sm-ext-yyjson
Updated some HTTP functions
Release 1.0.2
fix build