pax_global_header 0000666 0000000 0000000 00000000064 14727567031 0014526 g ustar 00root root 0000000 0000000 52 comment=da3cf2a777aed862f2f5b5cf060cae7969958667
Java-WebSocket-1.6.0/ 0000775 0000000 0000000 00000000000 14727567031 0014277 5 ustar 00root root 0000000 0000000 Java-WebSocket-1.6.0/.github/ 0000775 0000000 0000000 00000000000 14727567031 0015637 5 ustar 00root root 0000000 0000000 Java-WebSocket-1.6.0/.github/ISSUE_TEMPLATE/ 0000775 0000000 0000000 00000000000 14727567031 0020022 5 ustar 00root root 0000000 0000000 Java-WebSocket-1.6.0/.github/ISSUE_TEMPLATE/bug_report.md 0000664 0000000 0000000 00000001365 14727567031 0022521 0 ustar 00root root 0000000 0000000 ---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. .
2. ..
3. ...
4. ....
**Example application to reproduce the issue**
A link to a github project/gist to reproduce the issue.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Debug log**
The the debug log (set the log level to `TRACE`) to help explain your problem.
**Environment(please complete the following information):**
- Version used:
- Java version:
- Operating System and version:
- Endpoint Name and version:
- Link to your project:
**Additional context**
Add any other context about the problem here.
Java-WebSocket-1.6.0/.github/ISSUE_TEMPLATE/feature_request.md 0000664 0000000 0000000 00000001052 14727567031 0023545 0 ustar 00root root 0000000 0000000 ---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or links about the feature request here.
Java-WebSocket-1.6.0/.github/ISSUE_TEMPLATE/question.md 0000664 0000000 0000000 00000000563 14727567031 0022217 0 ustar 00root root 0000000 0000000 ---
name: Question
about: Question on how to use or achieve something
---
**Describe what you would like to know or do**
A clear and concise description of what the problem is.
**Describe the solution you'd considered**
A clear and concise description of any solutions you've considered.
**Additional context**
Add any other context or links about the question here.
Java-WebSocket-1.6.0/.github/PULL_REQUEST_TEMPLATE.md 0000664 0000000 0000000 00000003011 14727567031 0021433 0 ustar 00root root 0000000 0000000
## Description
## Related Issue
## Motivation and Context
## How Has This Been Tested?
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.
Java-WebSocket-1.6.0/.github/workflows/ 0000775 0000000 0000000 00000000000 14727567031 0017674 5 ustar 00root root 0000000 0000000 Java-WebSocket-1.6.0/.github/workflows/checkstyle.yml 0000664 0000000 0000000 00000001061 14727567031 0022553 0 ustar 00root root 0000000 0000000 # This workflow will build a Java project with Maven
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
name: Java Code Style Check with Maven
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Code Style Check
run: mvn -B checkstyle:check --file pom.xml
Java-WebSocket-1.6.0/.github/workflows/ci.yml 0000664 0000000 0000000 00000001204 14727567031 0021007 0 ustar 00root root 0000000 0000000 name: Continuous Integration
on: [push]
jobs:
Build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Build
run: mvn -DskipTests package --file pom.xml
Test:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Test
run: mvn test --file pom.xml
Java-WebSocket-1.6.0/.github/workflows/sonar.yml 0000664 0000000 0000000 00000002306 14727567031 0021542 0 ustar 00root root 0000000 0000000 name: SonarQube
on:
push:
branches:
- master
jobs:
build:
name: SonarQube
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Cache SonarCloud packages
uses: actions/cache@v1
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache Maven packages
uses: actions/cache@v1
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build and analyze
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: mvn -B org.jacoco:jacoco-maven-plugin:prepare-agent install org.jacoco:jacoco-maven-plugin:report verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dmaven.test.failure.ignore=true
Java-WebSocket-1.6.0/.gitignore 0000664 0000000 0000000 00000000216 14727567031 0016266 0 ustar 00root root 0000000 0000000 *.class
.git
.gradle
build
*.svn
*~
target
*.ipr
*.iml
*.iws
.settings
.project
.classpath
bin
/doc
*.xml
.idea/.name
lib/junit-4.7.jar
*.jar Java-WebSocket-1.6.0/CHANGELOG.md 0000664 0000000 0000000 00000100545 14727567031 0016115 0 ustar 00root root 0000000 0000000 # Change log
###############################################################################
## Version Release 1.6.0 (2024/12/15)
#### Breaking Changes
* [Issue 1434](https://github.com/TooTallNate/Java-WebSocket/issues/1434) - Drop Java 1.7 support ([PR 1435](https://github.com/TooTallNate/Java-WebSocket/pull/1435))
* [PR 1435](https://github.com/TooTallNate/Java-WebSocket/pull/1435) - Drop support for Java 1.7
#### Bugs Fixed
* [Issue 1437](https://github.com/TooTallNate/Java-WebSocket/issues/1437) - Question: How can the compression threshold be set for the PerMessageDeflateExtension in a Deflate Client? ([PR 1439](https://github.com/TooTallNate/Java-WebSocket/pull/1439))
* [Issue 1400](https://github.com/TooTallNate/Java-WebSocket/issues/1400) - PerMessageDeflateExtension#setDeflater()/#setInflater() is overwritten in case of no_context_takeover ([PR 1439](https://github.com/TooTallNate/Java-WebSocket/pull/1439))
* [PR 1439](https://github.com/TooTallNate/Java-WebSocket/pull/1439) - Clone PerMessageDeflateExtension values correctly
#### New Features
* [Issue 1440](https://github.com/TooTallNate/Java-WebSocket/issues/1440) - Support for inherited sockets ([PR 1442](https://github.com/TooTallNate/Java-WebSocket/pull/1442))
* [PR 1442](https://github.com/TooTallNate/Java-WebSocket/pull/1442) - Socket activation
In this release 4 issues and 3 pull requests were closed.
###############################################################################
## Version Release 1.5.7 (2024/07/08)
#### Breaking Changes
* [PR 1399](https://github.com/TooTallNate/Java-WebSocket/pull/1399) - Have connectBlocking clean up after a timeout
#### Bugs Fixed
* [PR 1419](https://github.com/TooTallNate/Java-WebSocket/pull/1419) - Fix issue #1418: WebSocketServer sometimes misses GET request after SSL handshake
#### New Features
* [PR 1407](https://github.com/TooTallNate/Java-WebSocket/pull/1407) - Allow setting custom TCP receive buffer size
* [PR 1399](https://github.com/TooTallNate/Java-WebSocket/pull/1399) - Have connectBlocking clean up after a timeout
In this release 0 issues and 4 pull requests were closed.
###############################################################################
## Version Release 1.5.6 (2024/02/06)
#### Bugs Fixed
* [Issue 1382](https://github.com/TooTallNate/Java-WebSocket/issues/1382) - WebSocketClient.upgradeSocketToSSL is enforcing TLS 1.2 ([PR 1387](https://github.com/TooTallNate/Java-WebSocket/pull/1387))
* [PR 1387](https://github.com/TooTallNate/Java-WebSocket/pull/1387) - Retrieve default SSL socket factory
#### New Features
* [Issue 1390](https://github.com/TooTallNate/Java-WebSocket/issues/1390) - Thread created by NamedThreadFactory should be a daemon ([PR 1391](https://github.com/TooTallNate/Java-WebSocket/pull/1391))
* [PR 1391](https://github.com/TooTallNate/Java-WebSocket/pull/1391) - Provide way to start the client/server as daemons
In this release 2 issues and 2 pull requests were closed.
###############################################################################
## Version Release 1.5.5 (2023/12/18)
#### Bugs Fixed
* [Issue 1365](https://github.com/TooTallNate/Java-WebSocket/issues/1365) - Hang on reconnectBlocking
* [Issue 1364](https://github.com/TooTallNate/Java-WebSocket/issues/1364) - NPE during reconnect ([PR 1367](https://github.com/TooTallNate/Java-WebSocket/pull/1367))
* [PR 1367](https://github.com/TooTallNate/Java-WebSocket/pull/1367) - Fix multiple issues related to reconnect
In this release 2 issues and 1 pull request were closed.
###############################################################################
## Version Release 1.5.4 (2023/07/20)
#### New Features
* [Issue 1308](https://github.com/TooTallNate/Java-WebSocket/issues/1308) - Add support for Java modules ([PR 1309](https://github.com/TooTallNate/Java-WebSocket/pull/1309))
* [PR 1309](https://github.com/TooTallNate/Java-WebSocket/pull/1309) - Add support for Java modules
#### Refactoring
* [PR 1259](https://github.com/TooTallNate/Java-WebSocket/pull/1259) - Replace usages of deprecated constructor Integer(String) with Integer.parseInt
In this release 1 issue and 2 pull requests were closed.
###############################################################################
## Version Release 1.5.3 (2022/04/09)
#### Bugs Fixed
* [Issue 1230](https://github.com/TooTallNate/Java-WebSocket/issues/1230) - CONTINUOUS should be decoded depending on the first frame ([PR 1232 ](https://github.com/TooTallNate/Java-WebSocket/pull/1232) by [@marci4](https://github.com/marci4))
* [Issue 1203](https://github.com/TooTallNate/Java-WebSocket/issues/1203) - Lost connection detection not working on delayed connect-Call ([PR 1204 ](https://github.com/TooTallNate/Java-WebSocket/pull/1204) by [@marci4](https://github.com/marci4))
* [Issue 1164](https://github.com/TooTallNate/Java-WebSocket/issues/1164) - [Android & Node.js Server] Problem using PerMessageDeflateExtension with custom ping/pong messages ? ([PR 1165 ](https://github.com/TooTallNate/Java-WebSocket/pull/1165) by [@marci4](https://github.com/marci4))
* [Issue 1160](https://github.com/TooTallNate/Java-WebSocket/issues/1160) - `WebSocketWorker` does not handle `Throwable` ([PR 1223 ](https://github.com/TooTallNate/Java-WebSocket/pull/1223) by [@Serpion-ua](https://github.com/Serpion-ua))
* [Issue 1142](https://github.com/TooTallNate/Java-WebSocket/issues/1142) - Verifying server certificate ([PR 1143 ](https://github.com/TooTallNate/Java-WebSocket/pull/1143) by [@marci4](https://github.com/marci4))
* [PR 1227](https://github.com/TooTallNate/Java-WebSocket/pull/1227) - Correct web socket closing, by [@Serpion-ua](https://github.com/Serpion-ua)
* [PR 1223](https://github.com/TooTallNate/Java-WebSocket/pull/1223) - Issue-1160 Added java.lang.Error handling in WebSocketImpl and WebSocketServer, by [@Serpion-ua](https://github.com/Serpion-ua)
* [PR 1212](https://github.com/TooTallNate/Java-WebSocket/pull/1212) - high cpu when channel close exception fix, by [@Adeptius](https://github.com/Adeptius)
#### New Features
* [PR 1185](https://github.com/TooTallNate/Java-WebSocket/pull/1185) - Added support unresolved socket addresses, by [@vtsykun](https://github.com/vtsykun)
In this release 5 issues and 8 pull requests were closed.
###############################################################################
## Version Release 1.5.2 (2021/04/05)
#### Bugs Fixed
* [Issue 1132](https://github.com/TooTallNate/Java-WebSocket/issues/1132) - Draft_6455 flagged by Veracode CWE-331 replace Random with SecureRandom ([PR 1133 ](https://github.com/TooTallNate/Java-WebSocket/pull/1133) by [@marci4](https://github.com/marci4))
* [Issue 1053](https://github.com/TooTallNate/Java-WebSocket/issues/1053) - It's an invalid check null with SEC_WEB_SOCKET_KEY . ([PR 1054 ](https://github.com/TooTallNate/Java-WebSocket/pull/1054) by [@dota17](https://github.com/dota17))
* [Issue 1026](https://github.com/TooTallNate/Java-WebSocket/issues/1026) - Force client to use the valid schema ([PR 1025 ](https://github.com/TooTallNate/Java-WebSocket/pull/1025) by [@yindex](https://github.com/yindex))
* [PR 1070](https://github.com/TooTallNate/Java-WebSocket/pull/1070) - Prioritise using provided socket factory when creating socket with proxy, by [@marci4](https://github.com/marci4)
* [PR 1028](https://github.com/TooTallNate/Java-WebSocket/pull/1028) - Fixed typo in WebSocketClient.reset's error message, by [@alphaho](https://github.com/alphaho)
* [PR 1018](https://github.com/TooTallNate/Java-WebSocket/pull/1018) - Added missing return character, by [@pawankgupta-se](https://github.com/pawankgupta-se)
#### New Features
* [Issue 1008](https://github.com/TooTallNate/Java-WebSocket/issues/1008) - Improve Sec-WebSocket-Protocol usability ([PR 1034 ](https://github.com/TooTallNate/Java-WebSocket/pull/1034) by [@marci4](https://github.com/marci4))
#### Refactoring
* [Issue 1050](https://github.com/TooTallNate/Java-WebSocket/issues/1050) - What about adding the CodeFormatterProfile.xml with the code format ? ([PR 1060 ](https://github.com/TooTallNate/Java-WebSocket/pull/1060) by [@dota17](https://github.com/dota17))
* [PR 1072](https://github.com/TooTallNate/Java-WebSocket/pull/1072) - Improve code quality, by [@marci4](https://github.com/marci4)
* [PR 1060](https://github.com/TooTallNate/Java-WebSocket/pull/1060) - Using Google Java Code Style To Reformat Code, by [@dota17](https://github.com/dota17)
In this release 5 issues and 9 pull requests were closed.
###############################################################################
## Version Release 1.5.1 (2020/05/10)
#### Bugs Fixed
* [Issue 1011](https://github.com/TooTallNate/Java-WebSocket/issues/1011) - Crash on Android due to missing method `setEndpointIdentificationAlgorithm` on 1.5.0. ([PR 1014](https://github.com/TooTallNate/Java-WebSocket/pull/1014))
In this release 1 issue and 1 pull request were closed.
###############################################################################
## Version Release 1.5.0 (2020/05/06)
#### Breaking Changes
This release requires API Level 1.7.
#### Security
This release contains a security fix for [CVE-2020-11050](https://nvd.nist.gov/vuln/detail/CVE-2020-11050).
Take a look at the advisory [here](https://github.com/TooTallNate/Java-WebSocket/security/advisories/GHSA-gw55-jm4h-x339) for more information.
#### New Features
* [Issue 574](https://github.com/TooTallNate/Java-WebSocket/issues/574) - Implementation of per message deflate extension ([PR 866](https://github.com/TooTallNate/Java-WebSocket/pull/866))
* [PR 866](https://github.com/TooTallNate/Java-WebSocket/pull/866) - Add PerMessageDeflate Extension support, see #574
* [Issue 997](https://github.com/TooTallNate/Java-WebSocket/issues/997) - Access to SSLParameters used by the WebSocketClient ([PR 1000](https://github.com/TooTallNate/Java-WebSocket/pull/1000))
* [Issue 574](https://github.com/TooTallNate/Java-WebSocket/issues/574) - Implementation of per message deflate extension ([PR 866](https://github.com/TooTallNate/Java-WebSocket/pull/866))
* [PR 1001](https://github.com/TooTallNate/Java-WebSocket/pull/1001) - Allow user to specify max number of pending connections to a server
* [PR 1000](https://github.com/TooTallNate/Java-WebSocket/pull/1000) - SSLParameters for WebSocketClient
* [PR 866](https://github.com/TooTallNate/Java-WebSocket/pull/866) - Add PerMessageDeflate Extension support, see #574
In this release 3 issues and 4 pull requests were closed.
###############################################################################
## Version Release 1.4.1 (2020/03/12)
#### Bugs Fixed
* [Issue 940](https://github.com/TooTallNate/Java-WebSocket/issues/940) - WebSocket handshake fails over WSS, if client uses TLS False Start ([PR 943](https://github.com/TooTallNate/Java-WebSocket/pull/943))
* [Issue 921](https://github.com/TooTallNate/Java-WebSocket/issues/921) - ConcurrentModificationException when looping connections
* [Issue 905](https://github.com/TooTallNate/Java-WebSocket/issues/905) - IOException wrapped in InternalError not handled properly ([PR 901](https://github.com/TooTallNate/Java-WebSocket/pull/901))
* [Issue 900](https://github.com/TooTallNate/Java-WebSocket/issues/900) - OnClose is not called when client disconnect ([PR 914](https://github.com/TooTallNate/Java-WebSocket/pull/914))
* [Issue 869](https://github.com/TooTallNate/Java-WebSocket/issues/869) - Lost connection detection is sensitive to changes in system time ([PR 878](https://github.com/TooTallNate/Java-WebSocket/pull/878))
* [Issue 665](https://github.com/TooTallNate/Java-WebSocket/issues/665) - Data read with end of SSL handshake is discarded ([PR 943](https://github.com/TooTallNate/Java-WebSocket/pull/943))
* [PR 943](https://github.com/TooTallNate/Java-WebSocket/pull/943) - Merge pull request #943 from da-als/master
* [PR 922](https://github.com/TooTallNate/Java-WebSocket/pull/922) - Fix ConcurrentModificationException when iterating through connection
* [PR 914](https://github.com/TooTallNate/Java-WebSocket/pull/914) - Merge pull request #914 from marci4/Issue900
* [PR 902](https://github.com/TooTallNate/Java-WebSocket/pull/902) - ConcurrentModificationException when using broadcast
* [PR 901](https://github.com/TooTallNate/Java-WebSocket/pull/901) - fix when proxy tunneling failed (IOException is hidden) JDK-8173
* [PR 878](https://github.com/TooTallNate/Java-WebSocket/pull/878) - Replace TimerTask with ScheduledExecutorService
#### New Features
* [Issue 969](https://github.com/TooTallNate/Java-WebSocket/issues/969) - Loggers should be declared non-static ([PR 970](https://github.com/TooTallNate/Java-WebSocket/pull/970))
* [Issue 962](https://github.com/TooTallNate/Java-WebSocket/issues/962) - Improvements in socket connect to server ([PR 964](https://github.com/TooTallNate/Java-WebSocket/pull/964))
* [Issue 941](https://github.com/TooTallNate/Java-WebSocket/issues/941) - How to send customized ping message on connectionLostTimeout interval ([PR 944](https://github.com/TooTallNate/Java-WebSocket/pull/944))
* [Issue 890](https://github.com/TooTallNate/Java-WebSocket/issues/890) - Would like to get SSLSession from WebSocket on server to examine client certificates ([PR 893](https://github.com/TooTallNate/Java-WebSocket/pull/893))
* [Issue 865](https://github.com/TooTallNate/Java-WebSocket/issues/865) - Append new headers to the client when reconnecting
* [Issue 859](https://github.com/TooTallNate/Java-WebSocket/issues/859) - Hot wo specify a custom DNS Resolver ([PR 906](https://github.com/TooTallNate/Java-WebSocket/pull/906))
* [PR 971](https://github.com/TooTallNate/Java-WebSocket/pull/971) - Enabled OSGi metadata in MANIFST-MF for created JAR
* [PR 964](https://github.com/TooTallNate/Java-WebSocket/pull/964) - Use socket isConnected() method rather than isBound()
* [PR 944](https://github.com/TooTallNate/Java-WebSocket/pull/944) - Add ability to customize ping messages with custom data
* [PR 906](https://github.com/TooTallNate/Java-WebSocket/pull/906) - Implemented a custom DNS resolver, see #859
* [PR 893](https://github.com/TooTallNate/Java-WebSocket/pull/893) - Provide a way to access the SSLSession of a websocket instance
* [PR 868](https://github.com/TooTallNate/Java-WebSocket/pull/868) - Add a way to put additional headers to handshake for connecting/reconnecting, see #865
#### Refactoring
* [Issue 907](https://github.com/TooTallNate/Java-WebSocket/issues/907) - build fails with Gradle 5+ ([PR 908](https://github.com/TooTallNate/Java-WebSocket/pull/908))
* [Issue 869](https://github.com/TooTallNate/Java-WebSocket/issues/869) - Lost connection detection is sensitive to changes in system time ([PR 878](https://github.com/TooTallNate/Java-WebSocket/pull/878))
* [PR 970](https://github.com/TooTallNate/Java-WebSocket/pull/970) - Made loggers non-static to support deployment in containers
* [PR 931](https://github.com/TooTallNate/Java-WebSocket/pull/931) - Create new github actions
* [PR 908](https://github.com/TooTallNate/Java-WebSocket/pull/908) - Remove outdated 'wrapper' task from build.gradle (#907)
* [PR 878](https://github.com/TooTallNate/Java-WebSocket/pull/878) - Replace TimerTask with ScheduledExecutorService
* [PR 874](https://github.com/TooTallNate/Java-WebSocket/pull/874) - Update dependencies
In this release 14 issues and 17 pull requests were closed.
## Version Release 1.4.0 (2019/02/19)
#### Breaking Changes
* [Issue 753](https://github.com/TooTallNate/Java-WebSocket/issues/753) - Breaking changes in 1.4
* [Issue 670](https://github.com/TooTallNate/Java-WebSocket/issues/670) - Use a logging framework such as as SLF4J instead of System.out.println ([PR 754](https://github.com/TooTallNate/Java-WebSocket/pull/754))
#### Bugs Fixed
* [Issue 855](https://github.com/TooTallNate/Java-WebSocket/issues/855) - WebSocketServer cannot be started without .start() ([PR 856](https://github.com/TooTallNate/Java-WebSocket/pull/856))
* [Issue 847](https://github.com/TooTallNate/Java-WebSocket/issues/847) - java.nio.BufferUnderflowException ([PR 849](https://github.com/TooTallNate/Java-WebSocket/pull/849))
* [Issue 834](https://github.com/TooTallNate/Java-WebSocket/issues/834) - Workers should not be started before the server
* [Issue 827](https://github.com/TooTallNate/Java-WebSocket/issues/827) - WebSocketClient close()
* [Issue 784](https://github.com/TooTallNate/Java-WebSocket/issues/784) - Building with gradle fails
* [Issue 773](https://github.com/TooTallNate/Java-WebSocket/issues/773) - Memory leak in WebSocketImpl.outQueue ([PR 781](https://github.com/TooTallNate/Java-WebSocket/pull/781))
* [PR 856](https://github.com/TooTallNate/Java-WebSocket/pull/856) - Move the startup of the WebSocketWorker inside of run()
* [PR 850](https://github.com/TooTallNate/Java-WebSocket/pull/850) - Fix issue #834 by starting WebSocketWorker of the WebSocketServer in the start function
* [PR 849](https://github.com/TooTallNate/Java-WebSocket/pull/849) - Fix issue #847
* [PR 846](https://github.com/TooTallNate/Java-WebSocket/pull/846) - Pass on exit code in WebSocketClient close function - fixes bug #827
* [PR 824](https://github.com/TooTallNate/Java-WebSocket/pull/824) - Synchronize AbstractWebSocket
* [PR 785](https://github.com/TooTallNate/Java-WebSocket/pull/785) - Update build.gradle
* [PR 781](https://github.com/TooTallNate/Java-WebSocket/pull/781) - Null the reference of the WebSocketImpl
* [PR 771](https://github.com/TooTallNate/Java-WebSocket/pull/771) - Test for 765
* [PR 770](https://github.com/TooTallNate/Java-WebSocket/pull/770) - Use a SocketFactory to support reconnecting
* [PR 769](https://github.com/TooTallNate/Java-WebSocket/pull/769) - Close WebSocketFactory when updated
* [PR 757](https://github.com/TooTallNate/Java-WebSocket/pull/757) - -keyalg RSA is needed or you'll get SSLHandshakeException: no cipher …
#### New Features
* [Issue 845](https://github.com/TooTallNate/Java-WebSocket/issues/845) - Generate changelog.md ([PR 851](https://github.com/TooTallNate/Java-WebSocket/pull/851))
* [Issue 838](https://github.com/TooTallNate/Java-WebSocket/issues/838) - Allow for two-way ssl(SSLEngine.setNeedClientAuth())
* [Issue 670](https://github.com/TooTallNate/Java-WebSocket/issues/670) - Use a logging framework such as as SLF4J instead of System.out.println ([PR 754](https://github.com/TooTallNate/Java-WebSocket/pull/754))
* [Issue 598](https://github.com/TooTallNate/Java-WebSocket/issues/598) - Memory Management ([PR 761](https://github.com/TooTallNate/Java-WebSocket/pull/761))
* [PR 839](https://github.com/TooTallNate/Java-WebSocket/pull/839) - SSLEngineWebSocketServerFactory allows more customization
* [PR 761](https://github.com/TooTallNate/Java-WebSocket/pull/761) - Implements Memory Management
#### Refactoring
* [Issue 845](https://github.com/TooTallNate/Java-WebSocket/issues/845) - Generate changelog.md ([PR 851](https://github.com/TooTallNate/Java-WebSocket/pull/851))
* [Issue 819](https://github.com/TooTallNate/Java-WebSocket/issues/819) - Ant build removed on master ?
* [Issue 784](https://github.com/TooTallNate/Java-WebSocket/issues/784) - Building with gradle fails
* [Issue 753](https://github.com/TooTallNate/Java-WebSocket/issues/753) - Breaking changes in 1.4
* [Issue 749](https://github.com/TooTallNate/Java-WebSocket/issues/749) - Improve code quality for 1.4.0
* [PR 848](https://github.com/TooTallNate/Java-WebSocket/pull/848) - Removed unused/unrelated imports (including deprecated CORBA)
* [PR 833](https://github.com/TooTallNate/Java-WebSocket/pull/833) - Fix some sonarqube errors
* [PR 824](https://github.com/TooTallNate/Java-WebSocket/pull/824) - Synchronize AbstractWebSocket
* [PR 821](https://github.com/TooTallNate/Java-WebSocket/pull/821) - Remove outdated build instructions from README
* [PR 805](https://github.com/TooTallNate/Java-WebSocket/pull/805) - More improvement
* [PR 789](https://github.com/TooTallNate/Java-WebSocket/pull/789) - WebSocketServer code quality
* [PR 785](https://github.com/TooTallNate/Java-WebSocket/pull/785) - Update build.gradle
* [PR 768](https://github.com/TooTallNate/Java-WebSocket/pull/768) - Fixed several issues related to the code quality
* [PR 754](https://github.com/TooTallNate/Java-WebSocket/pull/754) - Using SLF4J and refactored code
In this release 16 issues and 22 pull requests were closed.
## Version Release 1.3.9 (2018-08-05)
#### Bugs Fixed
* [Issue 694](https://github.com/TooTallNate/Java-WebSocket/issues/694) - AssertionError at WebSocketImpl.isOpen
* [Issue 685](https://github.com/TooTallNate/Java-WebSocket/issues/685) - Exclude default port from wss host ([PR 683](https://github.com/TooTallNate/Java-WebSocket/pull/683))
* [PR 746](https://github.com/TooTallNate/Java-WebSocket/pull/746) - Fixed typo in Draft_6455
* [PR 722](https://github.com/TooTallNate/Java-WebSocket/pull/722) - Catch exceptions in AbstractWebSocket
* [PR 708](https://github.com/TooTallNate/Java-WebSocket/pull/708) - Enable and Disable ping/pong
#### New Features
* [Issue 711](https://github.com/TooTallNate/Java-WebSocket/issues/711) - broadcasting a ByteBuffer
* [Issue 699](https://github.com/TooTallNate/Java-WebSocket/issues/699) - Enable and Disable ping/pong
* [PR 738](https://github.com/TooTallNate/Java-WebSocket/pull/738) - Adjust readme
* [PR 737](https://github.com/TooTallNate/Java-WebSocket/pull/737) - Prepare for automatic snapshot deploy
* [PR 724](https://github.com/TooTallNate/Java-WebSocket/pull/724) - added a timeout option for connectBlocking
* [PR 712](https://github.com/TooTallNate/Java-WebSocket/pull/712) - Added a broadcast method for ByteBuffers
* [PR 708](https://github.com/TooTallNate/Java-WebSocket/pull/708) - Enable and Disable ping/pong
#### Refactoring
* [PR 739](https://github.com/TooTallNate/Java-WebSocket/pull/739) - Exception when using reconnect in websocket thread
* [PR 736](https://github.com/TooTallNate/Java-WebSocket/pull/736) - Change example section
* [PR 733](https://github.com/TooTallNate/Java-WebSocket/pull/733) - Remove static from synchronize object
* [PR 702](https://github.com/TooTallNate/Java-WebSocket/pull/702) - Removed assertion from WebSocketImpl.isOpen (see #694)
* [PR 682](https://github.com/TooTallNate/Java-WebSocket/pull/682) - Deprecate Connecting and additional tests
In this release 4 issues and 13 pull requests were closed.
## Version Release 1.3.8 (2018-03-05)
#### Bugs Fixed
* [Issue 668](https://github.com/TooTallNate/Java-WebSocket/issues/668) - When a server fails to start it does not cleanup its WebSocketWorker threads
* [PR 662](https://github.com/TooTallNate/Java-WebSocket/pull/662) - NPE on already bound port
#### New Features
* [Issue 256](https://github.com/TooTallNate/Java-WebSocket/issues/256) - how to reconnect websocket ([PR 654](https://github.com/TooTallNate/Java-WebSocket/pull/654))
* [PR 654](https://github.com/TooTallNate/Java-WebSocket/pull/654) - WebSocketClient supports reconnecting
* [PR 651](https://github.com/TooTallNate/Java-WebSocket/pull/651) - Support for close code 1012-1014
#### Refactoring
* [Issue 669](https://github.com/TooTallNate/Java-WebSocket/issues/669) - Include information in the onClose call for the connection lost detection ([PR 671](https://github.com/TooTallNate/Java-WebSocket/pull/671))
* [Issue 666](https://github.com/TooTallNate/Java-WebSocket/issues/666) - Give the main WebSocketClient thread and AbstractWebSocket Timer a name ([PR 667](https://github.com/TooTallNate/Java-WebSocket/pull/667))
* [PR 675](https://github.com/TooTallNate/Java-WebSocket/pull/675) - Change thread name
* [PR 671](https://github.com/TooTallNate/Java-WebSocket/pull/671) - Include reason for dc due to lost connection detection
* [PR 667](https://github.com/TooTallNate/Java-WebSocket/pull/667) - Give all threads a custom name
In this release 4 issues and 6 pull requests were closed.
## Version Release 1.3.7 (2017-12-11)
#### Bugs Fixed
* [Issue 621](https://github.com/TooTallNate/Java-WebSocket/issues/621) - conn.close() in server's onOpen method causes null pointer exception ([PR 622](https://github.com/TooTallNate/Java-WebSocket/pull/622))
* [Issue 620](https://github.com/TooTallNate/Java-WebSocket/issues/620) - Investigate cause for #580 ([PR 628](https://github.com/TooTallNate/Java-WebSocket/pull/628))
* [Issue 609](https://github.com/TooTallNate/Java-WebSocket/issues/609) - A connection will be in readystate Open when onWebSocketClose is called ([PR 610](https://github.com/TooTallNate/Java-WebSocket/pull/610))
* [Issue 606](https://github.com/TooTallNate/Java-WebSocket/issues/606) - WebsocketNotConnectedException in Timer-0 ping
* [PR 628](https://github.com/TooTallNate/Java-WebSocket/pull/628) - Graceful shutdown on stop()
* [PR 622](https://github.com/TooTallNate/Java-WebSocket/pull/622) - Fix for #621
* [PR 610](https://github.com/TooTallNate/Java-WebSocket/pull/610) - Check if connection is open on sendPing & change readystate on closeConnection
#### New Features
* [Issue 608](https://github.com/TooTallNate/Java-WebSocket/issues/608) - Sec-WebSocket-Protocol header not supported ([PR 614](https://github.com/TooTallNate/Java-WebSocket/pull/614))
* [PR 627](https://github.com/TooTallNate/Java-WebSocket/pull/627) - Added setAttachment and getAttachment to WebSocket interface
* [PR 614](https://github.com/TooTallNate/Java-WebSocket/pull/614) - Protocol
#### Refactoring
* [PR 635](https://github.com/TooTallNate/Java-WebSocket/pull/635) - Mark AbstractClientProxyChannel as deprecated
* [PR 614](https://github.com/TooTallNate/Java-WebSocket/pull/614) - Protocol
* [PR 610](https://github.com/TooTallNate/Java-WebSocket/pull/610) - Check if connection is open on sendPing & change readystate on closeConnection
In this release 5 issues and 8 pull requests were closed.
## Version Release 1.3.6 (2017-11-09)
#### Bugs Fixed
* [Issue 579](https://github.com/TooTallNate/Java-WebSocket/issues/579) - Exception with sending ping without server access
* [PR 603](https://github.com/TooTallNate/Java-WebSocket/pull/603) - Check for sending a close frame
#### Refactoring
* [Issue 577](https://github.com/TooTallNate/Java-WebSocket/issues/577) - Improve onClose behaviour on client side
* [PR 597](https://github.com/TooTallNate/Java-WebSocket/pull/597) - Code cleanups
* [PR 596](https://github.com/TooTallNate/Java-WebSocket/pull/596) - Improved OpeningHandshakeRejection test
* [PR 591](https://github.com/TooTallNate/Java-WebSocket/pull/591) - Adjusted examples
* [PR 589](https://github.com/TooTallNate/Java-WebSocket/pull/589) - Include whole invalid status line
* [PR 578](https://github.com/TooTallNate/Java-WebSocket/pull/578) - Refactoring and improved onClose behaviour
In this release 2 issues and 6 pull requests were closed.
## Version Release 1.3.5 (2017-10-13)
#### Bugs Fixed
* [Issue 564](https://github.com/TooTallNate/Java-WebSocket/issues/564) - Continuous binary getting swallowed? ([PR 570](https://github.com/TooTallNate/Java-WebSocket/pull/570))
* [Issue 530](https://github.com/TooTallNate/Java-WebSocket/issues/530) - onWebsocketHandshakeReceivedAsServer throwing InvalidDataException has no effect
* [Issue 512](https://github.com/TooTallNate/Java-WebSocket/issues/512) - AssertionError in WebSocketServer.removeConnection
* [Issue 508](https://github.com/TooTallNate/Java-WebSocket/issues/508) - Ant fails due to missing `dist/` directory
* [Issue 504](https://github.com/TooTallNate/Java-WebSocket/issues/504) - Clean up connections after connection closed
* [Issue 390](https://github.com/TooTallNate/Java-WebSocket/issues/390) - Websocket server returning 401; can't handle on client side
* [PR 506](https://github.com/TooTallNate/Java-WebSocket/pull/506) - Connections dont always get cleaned up after lost connection
#### New Features
* [Issue 528](https://github.com/TooTallNate/Java-WebSocket/issues/528) - so_reuseaddr
* [Issue 463](https://github.com/TooTallNate/Java-WebSocket/issues/463) - Support for Compression Extensions for WebSocket
* [PR 529](https://github.com/TooTallNate/Java-WebSocket/pull/529) - Added setter for SO_REUSEADDR
* [PR 510](https://github.com/TooTallNate/Java-WebSocket/pull/510) - Add true WSS support to WebSocketClient
#### Refactoring
* [Issue 545](https://github.com/TooTallNate/Java-WebSocket/issues/545) - java.io.IOException: Broken pipe
* [Issue 539](https://github.com/TooTallNate/Java-WebSocket/issues/539) - Improve memory usage
* [Issue 516](https://github.com/TooTallNate/Java-WebSocket/issues/516) - Improve handling of IOExceptions causing eot()
* [PR 558](https://github.com/TooTallNate/Java-WebSocket/pull/558) - Code cleanups
* [PR 553](https://github.com/TooTallNate/Java-WebSocket/pull/553) - Removal of deprecated drafts
* [PR 510](https://github.com/TooTallNate/Java-WebSocket/pull/510) - Add true WSS support to WebSocketClient
* [PR 500](https://github.com/TooTallNate/Java-WebSocket/pull/500) - Making WebSocket.send() thread-safe
In this release 11 issues and 7 pull requests were closed.
## Version Release 1.3.4 (2017-06-02)
#### Breaking Changes
* [Issue 478](https://github.com/TooTallNate/Java-WebSocket/issues/478) - Draft_10, Draft_17, Draft_75 and Draft_76 are now deprecated
#### Bugs Fixed
* [Issue 484](https://github.com/TooTallNate/Java-WebSocket/issues/484) - Problems with WSS running on linux and Edge(or ie) browser
* [Issue 481](https://github.com/TooTallNate/Java-WebSocket/issues/481) - No Javadoc attached when using from Gradle
* [Issue 473](https://github.com/TooTallNate/Java-WebSocket/issues/473) - Improve lost connection detection
* [Issue 466](https://github.com/TooTallNate/Java-WebSocket/issues/466) - Instability on WSS Connections, only works when one client abandon connection
* [Issue 465](https://github.com/TooTallNate/Java-WebSocket/issues/465) - Bad rsv 4 on android
* [Issue 294](https://github.com/TooTallNate/Java-WebSocket/issues/294) - Issue in SSL implementation : protocole ws:// is always use in Draft_76.java
* [Issue 222](https://github.com/TooTallNate/Java-WebSocket/issues/222) - Worker threads do not close if bind() fails
* [Issue 120](https://github.com/TooTallNate/Java-WebSocket/issues/120) - Closing wss connections might not work as expected
* [PR 477](https://github.com/TooTallNate/Java-WebSocket/pull/477) - Fix for #222
* [PR 472](https://github.com/TooTallNate/Java-WebSocket/pull/472) - Fix for #466
* [PR 470](https://github.com/TooTallNate/Java-WebSocket/pull/470) - Fix #465
#### New Features
* [PR 497](https://github.com/TooTallNate/Java-WebSocket/pull/497) - Added new AutobahnServerTest for SSL and fixed errors in closeframe
* [PR 493](https://github.com/TooTallNate/Java-WebSocket/pull/493) - Clear implementations for frames and SSLWebsocketServerFactory
* [PR 489](https://github.com/TooTallNate/Java-WebSocket/pull/489) - Possibility to override worker thread allocation logic in WebSocketSe…
* [PR 487](https://github.com/TooTallNate/Java-WebSocket/pull/487) - Example for LetsEncrypt
* [PR 483](https://github.com/TooTallNate/Java-WebSocket/pull/483) - Introduction of Draft_6455
* [PR 480](https://github.com/TooTallNate/Java-WebSocket/pull/480) - Lostconnection
#### Refactoring
* [Issue 473](https://github.com/TooTallNate/Java-WebSocket/issues/473) - Improve lost connection detection
* [Issue 222](https://github.com/TooTallNate/Java-WebSocket/issues/222) - Worker threads do not close if bind() fails
* [PR 493](https://github.com/TooTallNate/Java-WebSocket/pull/493) - Clear implementations for frames and SSLWebsocketServerFactory
* [PR 488](https://github.com/TooTallNate/Java-WebSocket/pull/488) - New SSLSocketChannel
* [PR 486](https://github.com/TooTallNate/Java-WebSocket/pull/486) - ByteBuffer and JUnitTests
* [PR 483](https://github.com/TooTallNate/Java-WebSocket/pull/483) - Introduction of Draft_6455
* [PR 480](https://github.com/TooTallNate/Java-WebSocket/pull/480) - Lostconnection
* [PR 469](https://github.com/TooTallNate/Java-WebSocket/pull/469) - Cleanups & JavaDocs
In this release 11 issues and 15 pull requests were closed.
## Version Release 1.3.3 (2017-04-26)
#### Bugs Fixed
* [Issue 458](https://github.com/TooTallNate/Java-WebSocket/issues/458) - 100% cpu when using SSL
* [Issue 362](https://github.com/TooTallNate/Java-WebSocket/issues/362) - race problem when starting server with port 0
* [Issue 302](https://github.com/TooTallNate/Java-WebSocket/issues/302) - Client blocking connect and close methods return too soon
#### New Features
* [Issue 452](https://github.com/TooTallNate/Java-WebSocket/issues/452) - Unable to verify hostname after handshake
* [Issue 339](https://github.com/TooTallNate/Java-WebSocket/issues/339) - setTCPNoDelay inaccessible
* [Issue 271](https://github.com/TooTallNate/Java-WebSocket/issues/271) - There is no notification for websocket server success start
* [PR 462](https://github.com/TooTallNate/Java-WebSocket/pull/462) - Make TCP_NODELAY accessible
In this release 6 issues and 1 pull request were closed.
Java-WebSocket-1.6.0/LICENSE 0000664 0000000 0000000 00000002072 14727567031 0015305 0 ustar 00root root 0000000 0000000 Copyright (c) 2010-2020 Nathan Rajlich
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
Java-WebSocket-1.6.0/README.markdown 0000664 0000000 0000000 00000013105 14727567031 0017000 0 ustar 00root root 0000000 0000000 Java WebSockets
===============
[](https://travis-ci.org/marci4/Java-WebSocket-Dev)
[](https://www.javadoc.io/doc/org.java-websocket/Java-WebSocket)
[](https://mvnrepository.com/artifact/org.java-websocket/Java-WebSocket)
This repository contains a barebones WebSocket server and client implementation
written in 100% Java. The underlying classes are implemented `java.nio`, which allows for a
non-blocking event-driven model (similar to the
[WebSocket API](https://html.spec.whatwg.org/multipage/web-sockets.html) for web browsers).
Implemented WebSocket protocol versions are:
* [RFC 6455](http://tools.ietf.org/html/rfc6455)
* [RFC 7692](http://tools.ietf.org/html/rfc7692)
[Here](https://github.com/TooTallNate/Java-WebSocket/wiki/Drafts) some more details about protocol versions/drafts.
[PerMessageDeflateExample](https://github.com/TooTallNate/Java-WebSocket/wiki/PerMessageDeflateExample) enable the extension with reference to both a server and client example.
## Getting Started
### Dependency management tools
Below is a brief guide to using dependency management tools like maven or gradle.
#### Maven
To use maven add this dependency to your pom.xml:
```xml
If you do not have a valid **certificate** in place then you will have to create a self signed one.
Browsers will simply refuse the connection in case of a bad certificate and will not ask the user to accept it.
So the first step will be to make a browser to accept your self signed certificate. ( https://bugzilla.mozilla.org/show_bug.cgi?id=594502 ).
If the websocket server url is `wss://localhost:8000` visit the url `https://localhost:8000` with your browser. The browser will recognize the handshake and allow you to accept the certificate.
The vm option `-Djavax.net.debug=all` can help to find out if there is a problem with the certificate.
It is currently not possible to accept ws and wss connections at the same time via the same websocket server instance.
For some reason Firefox does not allow multiple connections to the same wss server if the server uses a different port than the default port (443).
If you want to use `wss` on the android platform you should take a look at [this](https://github.com/TooTallNate/Java-WebSocket/wiki/FAQ:-Secure-WebSockets#wss-on-android).
I ( @Davidiusdadi ) would be glad if you would give some feedback whether wss is working fine for you or not.
Minimum Required JDK
--------------------
`Java-WebSocket` is known to work with:
* Java 8 and higher
Other JRE implementations may work as well, but haven't been tested.
License
-------
Everything found in this repo is licensed under an MIT license. See
the `LICENSE` file for specifics.
Java-WebSocket-1.6.0/autobahn reports/ 0000775 0000000 0000000 00000000000 14727567031 0017557 5 ustar 00root root 0000000 0000000 Java-WebSocket-1.6.0/autobahn reports/clients/ 0000775 0000000 0000000 00000000000 14727567031 0021220 5 ustar 00root root 0000000 0000000 Java-WebSocket-1.6.0/autobahn reports/clients/index.html 0000664 0000000 0000000 00000751405 14727567031 0023231 0 ustar 00root root 0000000 0000000

Summary report generated on 2012-02-04T14:47:30Z (UTC) by Autobahn WebSockets v0.4.10.
| Pass | Test case was executed and passed successfully. |
| Non-Strict | Test case was executed and passed non-strictly. A non-strict behavior is one that does not adhere to a SHOULD-behavior as described in the protocol specification or a well-defined, canonical behavior that appears to be desirable but left open in the protocol specification. An implementation with non-strict behavior is still conformant to the protocol specification. |
| Fail | Test case was executed and failed. An implementation which fails a test case - other than a performance/limits related one - is non-conforming to a MUST-behavior as described in the protocol specification. |
| Info | Informational test case which detects certain implementation behavior left unspecified by the spec but nevertheless potentially interesting to implementors. |
| Missing | Test case is missing, either because it was skipped via the test suite configuration or deactivated, i.e. because the implementation does not implement the tested feature or breaks during running the test case. |
| 1 Framing | tootallnate/websocket | |
| 1.1 Text Messages | ||
| Case 1.1.1 | Pass | None |
| Case 1.1.2 | Pass | None |
| Case 1.1.3 | Pass | None |
| Case 1.1.4 | Pass | None |
| Case 1.1.5 | Pass | None |
| Case 1.1.6 | Pass | None |
| Case 1.1.7 | Pass | None |
| Case 1.1.8 | Pass | None |
| 1 Framing | tootallnate/websocket | |
| 1.2 Binary Messages | ||
| Case 1.2.1 | Pass | None |
| Case 1.2.2 | Pass | None |
| Case 1.2.3 | Pass | None |
| Case 1.2.4 | Pass | None |
| Case 1.2.5 | Pass | None |
| Case 1.2.6 | Pass | None |
| Case 1.2.7 | Pass | None |
| Case 1.2.8 | Pass | None |
| 2 Pings/Pongs | tootallnate/websocket | |
| Case 2.1 | Pass | None |
| Case 2.2 | Pass | None |
| Case 2.3 | Pass | None |
| Case 2.4 | Pass | None |
| Case 2.5 | Pass | None |
| Case 2.6 | Pass | None |
| Case 2.7 | Pass | None |
| Case 2.8 | Pass | None |
| Case 2.9 | Pass | None |
| Case 2.10 | Pass | None |
| Case 2.11 | Pass | None |
| 3 Reserved Bits | tootallnate/websocket | |
| Case 3.1 | Pass | None |
| Case 3.2 | Non-Strict | None |
| Case 3.3 | Non-Strict | None |
| Case 3.4 | Pass | None |
| Case 3.5 | Pass | None |
| Case 3.6 | Pass | None |
| Case 3.7 | Pass | None |
| 4 Opcodes | tootallnate/websocket | |
| 4.1 Non-control Opcodes | ||
| Case 4.1.1 | Pass | None |
| Case 4.1.2 | Pass | None |
| Case 4.1.3 | Non-Strict | None |
| Case 4.1.4 | Non-Strict | None |
| Case 4.1.5 | Pass | None |
| 4 Opcodes | tootallnate/websocket | |
| 4.2 Control Opcodes | ||
| Case 4.2.1 | Pass | None |
| Case 4.2.2 | Pass | None |
| Case 4.2.3 | Non-Strict | None |
| Case 4.2.4 | Non-Strict | None |
| Case 4.2.5 | Pass | None |
| 5 Fragmentation | tootallnate/websocket | |
| Case 5.1 | Pass | None |
| Case 5.2 | Pass | None |
| Case 5.3 | Pass | None |
| Case 5.4 | Pass | None |
| Case 5.5 | Pass | None |
| Case 5.6 | Pass | None |
| Case 5.7 | Pass | None |
| Case 5.8 | Pass | None |
| Case 5.9 | Pass | None |
| Case 5.10 | Pass | None |
| Case 5.11 | Pass | None |
| Case 5.12 | Pass | None |
| Case 5.13 | Pass | None |
| Case 5.14 | Pass | None |
| Case 5.15 | Pass | None |
| Case 5.16 | Pass | None |
| Case 5.17 | Pass | None |
| Case 5.18 | Pass | None |
| Case 5.19 | Pass | None |
| Case 5.20 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.1 Valid UTF-8 with zero payload fragments | ||
| Case 6.1.1 | Pass | None |
| Case 6.1.2 | Pass | None |
| Case 6.1.3 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.2 Valid UTF-8 unfragmented, fragmented on code-points and within code-points | ||
| Case 6.2.1 | Pass | None |
| Case 6.2.2 | Pass | None |
| Case 6.2.3 | Pass | None |
| Case 6.2.4 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.3 Invalid UTF-8 differently fragmented | ||
| Case 6.3.1 | Fail | Fail |
| Case 6.3.2 | Fail | Fail |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.4 Fail-fast on invalid UTF-8 | ||
| Case 6.4.1 | Non-Strict | None |
| Case 6.4.2 | Non-Strict | None |
| Case 6.4.3 | Non-Strict | None |
| Case 6.4.4 | Non-Strict | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.5 Some valid UTF-8 sequences | ||
| Case 6.5.1 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.6 All prefixes of a valid UTF-8 string that contains multi-byte code points | ||
| Case 6.6.1 | Pass | None |
| Case 6.6.2 | Pass | None |
| Case 6.6.3 | Pass | None |
| Case 6.6.4 | Pass | None |
| Case 6.6.5 | Pass | None |
| Case 6.6.6 | Pass | None |
| Case 6.6.7 | Pass | None |
| Case 6.6.8 | Pass | None |
| Case 6.6.9 | Pass | None |
| Case 6.6.10 | Pass | None |
| Case 6.6.11 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.7 First possible sequence of a certain length | ||
| Case 6.7.1 | Pass | None |
| Case 6.7.2 | Pass | None |
| Case 6.7.3 | Pass | None |
| Case 6.7.4 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.8 First possible sequence length 5/6 (invalid codepoints) | ||
| Case 6.8.1 | Pass | None |
| Case 6.8.2 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.9 Last possible sequence of a certain length | ||
| Case 6.9.1 | Pass | None |
| Case 6.9.2 | Pass | None |
| Case 6.9.3 | Pass | None |
| Case 6.9.4 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.10 Last possible sequence length 4/5/6 (invalid codepoints) | ||
| Case 6.10.1 | Pass | None |
| Case 6.10.2 | Pass | None |
| Case 6.10.3 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.11 Other boundary conditions | ||
| Case 6.11.1 | Pass | None |
| Case 6.11.2 | Pass | None |
| Case 6.11.3 | Pass | None |
| Case 6.11.4 | Pass | None |
| Case 6.11.5 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.12 Unexpected continuation bytes | ||
| Case 6.12.1 | Pass | None |
| Case 6.12.2 | Pass | None |
| Case 6.12.3 | Pass | None |
| Case 6.12.4 | Pass | None |
| Case 6.12.5 | Pass | None |
| Case 6.12.6 | Pass | None |
| Case 6.12.7 | Pass | None |
| Case 6.12.8 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.13 Lonely start characters | ||
| Case 6.13.1 | Pass | None |
| Case 6.13.2 | Pass | None |
| Case 6.13.3 | Pass | None |
| Case 6.13.4 | Pass | None |
| Case 6.13.5 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.14 Sequences with last continuation byte missing | ||
| Case 6.14.1 | Pass | None |
| Case 6.14.2 | Pass | None |
| Case 6.14.3 | Pass | None |
| Case 6.14.4 | Pass | None |
| Case 6.14.5 | Pass | None |
| Case 6.14.6 | Pass | None |
| Case 6.14.7 | Pass | None |
| Case 6.14.8 | Pass | None |
| Case 6.14.9 | Pass | None |
| Case 6.14.10 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.15 Concatenation of incomplete sequences | ||
| Case 6.15.1 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.16 Impossible bytes | ||
| Case 6.16.1 | Pass | None |
| Case 6.16.2 | Pass | None |
| Case 6.16.3 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.17 Examples of an overlong ASCII character | ||
| Case 6.17.1 | Pass | None |
| Case 6.17.2 | Pass | None |
| Case 6.17.3 | Pass | None |
| Case 6.17.4 | Pass | None |
| Case 6.17.5 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.18 Maximum overlong sequences | ||
| Case 6.18.1 | Pass | None |
| Case 6.18.2 | Pass | None |
| Case 6.18.3 | Pass | None |
| Case 6.18.4 | Pass | None |
| Case 6.18.5 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.19 Overlong representation of the NUL character | ||
| Case 6.19.1 | Pass | None |
| Case 6.19.2 | Pass | None |
| Case 6.19.3 | Pass | None |
| Case 6.19.4 | Pass | None |
| Case 6.19.5 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.20 Single UTF-16 surrogates | ||
| Case 6.20.1 | Fail | Fail |
| Case 6.20.2 | Fail | Fail |
| Case 6.20.3 | Fail | Fail |
| Case 6.20.4 | Fail | Fail |
| Case 6.20.5 | Fail | Fail |
| Case 6.20.6 | Fail | Fail |
| Case 6.20.7 | Fail | Fail |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.21 Paired UTF-16 surrogates | ||
| Case 6.21.1 | Fail | Fail |
| Case 6.21.2 | Fail | Fail |
| Case 6.21.3 | Fail | Fail |
| Case 6.21.4 | Fail | Fail |
| Case 6.21.5 | Fail | Fail |
| Case 6.21.6 | Fail | Fail |
| Case 6.21.7 | Fail | Fail |
| Case 6.21.8 | Fail | Fail |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.22 Non-character code points (valid UTF-8) | ||
| Case 6.22.1 | Pass | None |
| Case 6.22.2 | Pass | None |
| Case 6.22.3 | Pass | None |
| Case 6.22.4 | Pass | None |
| Case 6.22.5 | Pass | None |
| Case 6.22.6 | Pass | None |
| Case 6.22.7 | Pass | None |
| Case 6.22.8 | Pass | None |
| Case 6.22.9 | Pass | None |
| Case 6.22.10 | Pass | None |
| Case 6.22.11 | Pass | None |
| Case 6.22.12 | Pass | None |
| Case 6.22.13 | Pass | None |
| Case 6.22.14 | Pass | None |
| Case 6.22.15 | Pass | None |
| Case 6.22.16 | Pass | None |
| Case 6.22.17 | Pass | None |
| Case 6.22.18 | Pass | None |
| Case 6.22.19 | Pass | None |
| Case 6.22.20 | Pass | None |
| Case 6.22.21 | Pass | None |
| Case 6.22.22 | Pass | None |
| Case 6.22.23 | Pass | None |
| Case 6.22.24 | Pass | None |
| Case 6.22.25 | Pass | None |
| Case 6.22.26 | Pass | None |
| Case 6.22.27 | Pass | None |
| Case 6.22.28 | Pass | None |
| Case 6.22.29 | Pass | None |
| Case 6.22.30 | Pass | None |
| Case 6.22.31 | Pass | None |
| Case 6.22.32 | Pass | None |
| Case 6.22.33 | Pass | None |
| Case 6.22.34 | Pass | None |
| 6 UTF-8 Handling | tootallnate/websocket | |
| 6.23 Unicode replacement character | ||
| Case 6.23.1 | Pass | None |
| 7 Close Handling | tootallnate/websocket | |
| 7.1 Basic close behavior (fuzzer initiated) | ||
| Case 7.1.1 | Pass | None |
| Case 7.1.2 | Pass | None |
| Case 7.1.3 | Pass | None |
| Case 7.1.4 | Pass | None |
| Case 7.1.5 | Pass | None |
| Case 7.1.6 | Info | None |
| 7 Close Handling | tootallnate/websocket | |
| 7.3 Close frame structure: payload length (fuzzer initiated) | ||
| Case 7.3.1 | Pass | None |
| Case 7.3.2 | Pass | None |
| Case 7.3.3 | Pass | None |
| Case 7.3.4 | Pass | None |
| Case 7.3.5 | Pass | None |
| Case 7.3.6 | Pass | None |
| 7 Close Handling | tootallnate/websocket | |
| 7.5 Close frame structure: payload value (fuzzer initiated) | ||
| Case 7.5.1 | Pass | None |
| 7 Close Handling | tootallnate/websocket | |
| 7.7 Close frame structure: valid close codes (fuzzer initiated) | ||
| Case 7.7.1 | Pass | None |
| Case 7.7.2 | Pass | None |
| Case 7.7.3 | Pass | None |
| Case 7.7.4 | Pass | None |
| Case 7.7.5 | Pass | None |
| Case 7.7.6 | Pass | None |
| Case 7.7.7 | Pass | None |
| Case 7.7.8 | Pass | None |
| Case 7.7.9 | Pass | None |
| Case 7.7.10 | Pass | None |
| Case 7.7.11 | Pass | None |
| Case 7.7.12 | Pass | None |
| Case 7.7.13 | Pass | None |
| 7 Close Handling | tootallnate/websocket | |
| 7.9 Close frame structure: invalid close codes (fuzzer initiated) | ||
| Case 7.9.1 | Pass | None |
| Case 7.9.2 | Pass | None |
| Case 7.9.3 | Pass | None |
| Case 7.9.4 | Pass | None |
| Case 7.9.5 | Pass | None |
| Case 7.9.6 | Pass | None |
| Case 7.9.7 | Pass | None |
| Case 7.9.8 | Pass | None |
| Case 7.9.9 | Pass | None |
| Case 7.9.10 | Pass | None |
| Case 7.9.11 | Pass | None |
| Case 7.9.12 | Pass | None |
| Case 7.9.13 | Pass | None |
| 7 Close Handling | tootallnate/websocket | |
| 7.13 Informational close information (fuzzer initiated) | ||
| Case 7.13.1 | Info | None |
| Case 7.13.2 | Info | None |
| 9 Limits/Performance | tootallnate/websocket | |
| 9.1 Text Message (increasing size) | ||
| Case 9.1.1 | Pass 88 ms | None |
| Case 9.1.2 | Pass 354 ms | None |
| Case 9.1.3 | Pass 1278 ms | None |
| Case 9.1.4 | Pass 5138 ms | None |
| Case 9.1.5 | Pass 10252 ms | None |
| Case 9.1.6 | Pass 20383 ms | None |
| 9 Limits/Performance | tootallnate/websocket | |
| 9.2 Binary Message (increasing size) | ||
| Case 9.2.1 | Pass 50 ms | None |
| Case 9.2.2 | Pass 149 ms | None |
| Case 9.2.3 | Pass 576 ms | None |
| Case 9.2.4 | Pass 2368 ms | None |
| Case 9.2.5 | Pass 4974 ms | None |
| Case 9.2.6 | Pass 9816 ms | None |
| 9 Limits/Performance | tootallnate/websocket | |
| 9.3 Fragmented Text Message (fixed size, increasing fragment size) | ||
| Case 9.3.1 | Pass 73618 ms | None |
| Case 9.3.2 | Pass 21904 ms | None |
| Case 9.3.3 | Pass 9511 ms | None |
| Case 9.3.4 | Pass 6355 ms | None |
| Case 9.3.5 | Pass 5412 ms | None |
| Case 9.3.6 | Pass 5167 ms | None |
| Case 9.3.7 | Pass 5097 ms | None |
| Case 9.3.8 | Pass 5109 ms | None |
| Case 9.3.9 | Pass 5064 ms | None |
| 9 Limits/Performance | tootallnate/websocket | |
| 9.4 Fragmented Binary Message (fixed size, increasing fragment size) | ||
| Case 9.4.1 | Pass 68983 ms | None |
| Case 9.4.2 | Pass 19104 ms | None |
| Case 9.4.3 | Pass 6678 ms | None |
| Case 9.4.4 | Pass 3500 ms | None |
| Case 9.4.5 | Pass 2588 ms | None |
| Case 9.4.6 | Pass 2373 ms | None |
| Case 9.4.7 | Pass 2271 ms | None |
| Case 9.4.8 | Pass 2251 ms | None |
| Case 9.4.9 | Pass 2252 ms | None |
| 9 Limits/Performance | tootallnate/websocket | |
| 9.5 Text Message (fixed size, increasing chop size) | ||
| Case 9.5.1 | Pass 18135 ms | None |
| Case 9.5.2 | Pass 9891 ms | None |
| Case 9.5.3 | Pass 5464 ms | None |
| Case 9.5.4 | Pass 3387 ms | None |
| Case 9.5.5 | Pass 2355 ms | None |
| Case 9.5.6 | Pass 1902 ms | None |
| 9 Limits/Performance | tootallnate/websocket | |
| 9.6 Binary Text Message (fixed size, increasing chop size) | ||
| Case 9.6.1 | Pass 17756 ms | None |
| Case 9.6.2 | Pass 9052 ms | None |
| Case 9.6.3 | Pass 4858 ms | None |
| Case 9.6.4 | Pass 2682 ms | None |
| Case 9.6.5 | Pass 1675 ms | None |
| Case 9.6.6 | Pass 1146 ms | None |
| 9 Limits/Performance | tootallnate/websocket | |
| 9.7 Text Message Roundtrip Time (fixed number, increasing size) | ||
| Case 9.7.1 | Pass 258 ms | None |
| Case 9.7.2 | Pass 273 ms | None |
| Case 9.7.3 | Pass 348 ms | None |
| Case 9.7.4 | Pass 595 ms | None |
| Case 9.7.5 | Pass 1671 ms | None |
| Case 9.7.6 | Pass 5664 ms | None |
| 9 Limits/Performance | tootallnate/websocket | |
| 9.8 Binary Message Roundtrip Time (fixed number, increasing size) | ||
| Case 9.8.1 | Pass 247 ms | None |
| Case 9.8.2 | Pass 262 ms | None |
| Case 9.8.3 | Pass 302 ms | None |
| Case 9.8.4 | Pass 396 ms | None |
| Case 9.8.5 | Pass 957 ms | None |
| Case 9.8.6 | Pass 2814 ms | None |
| 10 Autobahn Protocol Options | tootallnate/websocket | |
| 10.1 Auto-Fragmentation | ||
| Case 10.1.1 | Pass | None |
Case Description
Send text message with payload 0.
Case Expectation
Receive echo'ed text message (with empty payload). Clean close with normal code.
Case Description
Send text message message with payload of length 125.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 126.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 127.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 128.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 65535.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 65536.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send text message message with payload of length 65536. Sent out data in chops of 997 octets.
Case Expectation
Receive echo'ed text message (with payload as sent). Clean close with normal code.
Case Description
Send binary message with payload 0.
Case Expectation
Receive echo'ed binary message (with empty payload). Clean close with normal code.
Case Description
Send binary message message with payload of length 125.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 126.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 127.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 128.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 65535.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 65536.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send binary message message with payload of length 65536. Sent out data in chops of 997 octets.
Case Expectation
Receive echo'ed binary message (with payload as sent). Clean close with normal code.
Case Description
Send ping without payload.
Case Expectation
Pong (with empty payload) is sent in reply to Ping. Clean close with normal code.
Case Description
Send ping with small text payload.
Case Expectation
Pong with payload echo'ed is sent in reply to Ping. Clean close with normal code.
Case Description
Send ping with small binary (non UTF-8) payload.
Case Expectation
Pong with payload echo'ed is sent in reply to Ping. Clean close with normal code.
Case Description
Send ping with binary payload of 125 octets.
Case Expectation
Pong with payload echo'ed is sent in reply to Ping. Clean close with normal code.
Case Description
Send ping with binary payload of 126 octets.
Case Expectation
Connection is failed immediately (1002/Protocol Error), since control frames are only allowed to have payload up to and including 125 octets..
Case Description
Send ping with binary payload of 125 octets, send in octet-wise chops.
Case Expectation
Pong with payload echo'ed is sent in reply to Ping. Implementations must be TCP clean. Clean close with normal code.
Case Description
Send unsolicited pong without payload. Verify nothing is received. Clean close with normal code.
Case Expectation
Nothing.
Case Description
Send unsolicited pong with payload. Verify nothing is received. Clean close with normal code.
Case Expectation
Nothing.
Case Description
Send unsolicited pong with payload. Send ping with payload. Verify pong for ping is received.
Case Expectation
Nothing in reply to own Pong, but Pong with payload echo'ed in reply to Ping. Clean close with normal code.
Case Description
Send 10 Pings with payload.
Case Expectation
Pongs for our Pings with all the payloads. Note: This is not required by the Spec .. but we check for this behaviour anyway. Clean close with normal code.
Case Description
Send 10 Pings with payload. Send out octets in octet-wise chops.
Case Expectation
Pongs for our Pings with all the payloads. Note: This is not required by the Spec .. but we check for this behaviour anyway. Clean close with normal code.
Case Description
Send small text message with RSV = 1.
Case Expectation
The connection is failed immediately (1002/protocol error), since RSV must be 0, when no extension defining RSV meaning has been negoiated.
Case Description
Send small text message, then send again with RSV = 2, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since RSV must be 0, when no extension defining RSV meaning has been negoiated. The Pong is not received.
Case Description
Send small text message, then send again with RSV = 3, then send Ping. Octets are sent in frame-wise chops. Octets are sent in octet-wise chops.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since RSV must be 0, when no extension defining RSV meaning has been negoiated. The Pong is not received.
Case Description
Send small text message, then send again with RSV = 4, then send Ping. Octets are sent in octet-wise chops.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since RSV must be 0, when no extension defining RSV meaning has been negoiated. The Pong is not received.
Case Description
Send small binary message with RSV = 5.
Case Expectation
The connection is failed immediately, since RSV must be 0.
Case Description
Send Ping with RSV = 6.
Case Expectation
The connection is failed immediately, since RSV must be 0.
Case Description
Send Close with RSV = 7.
Case Expectation
The connection is failed immediately, since RSV must be 0.
Case Description
Send frame with reserved non-control Opcode = 3.
Case Expectation
The connection is failed immediately.
Case Description
Send frame with reserved non-control Opcode = 4 and non-empty payload.
Case Expectation
The connection is failed immediately.
Case Description
Send small text message, then send frame with reserved non-control Opcode = 5, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send small text message, then send frame with reserved non-control Opcode = 6 and non-empty payload, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send small text message, then send frame with reserved non-control Opcode = 7 and non-empty payload, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send frame with reserved control Opcode = 11.
Case Expectation
The connection is failed immediately.
Case Description
Send frame with reserved control Opcode = 12 and non-empty payload.
Case Expectation
The connection is failed immediately.
Case Description
Send small text message, then send frame with reserved control Opcode = 13, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send small text message, then send frame with reserved control Opcode = 14 and non-empty payload, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send small text message, then send frame with reserved control Opcode = 15 and non-empty payload, then send Ping.
Case Expectation
Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.
Case Description
Send Ping fragmented into 2 fragments.
Case Expectation
Connection is failed immediately, since control message MUST NOT be fragmented.
Case Description
Send Pong fragmented into 2 fragments.
Case Expectation
Connection is failed immediately, since control message MUST NOT be fragmented.
Case Description
Send text Message fragmented into 2 fragments.
Case Expectation
Message is processed and echo'ed back to us.
Case Description
Send text Message fragmented into 2 fragments, octets are sent in frame-wise chops.
Case Expectation
Message is processed and echo'ed back to us.
Case Description
Send text Message fragmented into 2 fragments, octets are sent in octet-wise chops.
Case Expectation
Message is processed and echo'ed back to us.
Case Description
Send text Message fragmented into 2 fragments, one ping with payload in-between.
Case Expectation
A pong is received, then the message is echo'ed back to us.
Case Description
Send text Message fragmented into 2 fragments, one ping with payload in-between. Octets are sent in frame-wise chops.
Case Expectation
A pong is received, then the message is echo'ed back to us.
Case Description
Send text Message fragmented into 2 fragments, one ping with payload in-between. Octets are sent in octet-wise chops.
Case Expectation
A pong is received, then the message is echo'ed back to us.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = true, where there is nothing to continue, sent in one chop.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = true, where there is nothing to continue, sent in per-frame chops.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = true, where there is nothing to continue, sent in octet-wise chops.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = false, where there is nothing to continue, sent in one chop.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = false, where there is nothing to continue, sent in per-frame chops.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send unfragmented Text Message after Continuation Frame with FIN = false, where there is nothing to continue, sent in octet-wise chops.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send text Message fragmented into 2 fragments, then Continuation Frame with FIN = false where there is nothing to continue, then unfragmented Text Message, all sent in one chop.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Repeated 2x: Continuation Frame with FIN = false (where there is nothing to continue), then text Message fragmented into 2 fragments.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Repeated 2x: Continuation Frame with FIN = true (where there is nothing to continue), then text Message fragmented into 2 fragments.
Case Expectation
The connection is failed immediately, since there is no message to continue.
Case Description
Send text Message fragmented into 2 fragments, with both frame opcodes set to text, sent in one chop.
Case Expectation
The connection is failed immediately, since all data frames after the initial data frame must have opcode 0.
Case Description
A fragmented text message is sent in multiple frames. After
sending the first 2 frames of the text message, a Ping is sent. Then we wait 1s,
then we send 2 more text fragments, another Ping and then the final text fragment.
Everything is legal.
Case Expectation
The peer immediately answers the first Ping before
it has received the last text message fragment. The peer pong's back the Ping's
payload exactly, and echo's the payload of the fragmented message back to us.
Case Description
Same as Case 5.19, but send all frames with SYNC = True.
Note, this does not change the octets sent in any way, only how the stream
is chopped up on the wire.
Case Expectation
Same as Case 5.19. Implementations must be agnostic to how
octet stream is chopped up on wire (must be TCP clean).
Case Description
Send text message of length 0.
Case Expectation
A message is echo'ed back to us (with empty payload).
Case Description
Send fragmented text message, 3 fragments each of length 0.
Case Expectation
A message is echo'ed back to us (with empty payload).
Case Description
Send fragmented text message, 3 fragments, first and last of length 0, middle non-empty.
Case Expectation
A message is echo'ed back to us (with payload = payload of middle fragment).
Case Description
Send a valid UTF-8 text message in one fragment.
MESSAGE:
Hello-µ@ßöäüàá-UTF-8!!
48656c6c6f2dc2b540c39fc3b6c3a4c3bcc3a0c3a12d5554462d382121
Case Expectation
The message is echo'ed back to us.
Case Description
Send a valid UTF-8 text message in two fragments, fragmented on UTF-8 code point boundary.
MESSAGE FRAGMENT 1:
Hello-µ@ßöä
48656c6c6f2dc2b540c39fc3b6c3a4
MESSAGE FRAGMENT 2:
üàá-UTF-8!!
c3bcc3a0c3a12d5554462d382121
Case Expectation
The message is echo'ed back to us.
Case Description
Send a valid UTF-8 text message in fragments of 1 octet, resulting in frames ending on positions which are not code point ends.
MESSAGE:
Hello-µ@ßöäüàá-UTF-8!!
48656c6c6f2dc2b540c39fc3b6c3a4c3bcc3a0c3a12d5554462d382121
Case Expectation
The message is echo'ed back to us.
Case Description
Send a valid UTF-8 text message in fragments of 1 octet, resulting in frames ending on positions which are not code point ends.
MESSAGE:
κόσμε
cebae1bdb9cf83cebcceb5
Case Expectation
The message is echo'ed back to us.
Case Description
Send invalid UTF-8 text message unfragmented.
MESSAGE:
κόσμεedited
cebae1bdb9cf83cebcceb5eda080656469746564
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send invalid UTF-8 text message in fragments of 1 octet, resulting in frames ending on positions which are not code point ends.
MESSAGE:
κόσμεedited
cebae1bdb9cf83cebcceb5eda080656469746564
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send invalid UTF-8 text message in 3 fragments (frames).
First frame payload is valid, then wait, then 2nd frame which contains the payload making the sequence invalid, then wait, then 3rd frame with rest.
Note that PART1 and PART3 are valid UTF-8 in themselves, PART2 is a 0x11000 encoded as in the UTF-8 integer encoding scheme, but the codepoint is invalid (out of range).
MESSAGE PARTS:
PART1 = κόσμε (cebae1bdb9cf83cebcceb5)
PART2 = (f4908080)
PART3 = edited (656469746564)
Case Expectation
The first frame is accepted, we expect to timeout on the first wait. The 2nd frame should be rejected immediately (fail fast on UTF-8). If we timeout, we expect the connection is failed at least then, since the complete message payload is not valid UTF-8.
Case Description
Same as Case 6.4.1, but in 2nd frame, we send only up to and including the octet making the complete payload invalid.
MESSAGE PARTS:
PART1 = κόσμε (cebae1bdb9cf83cebcceb5f4)
PART2 = (90)
PART3 = edited (8080656469746564)
Case Expectation
The first frame is accepted, we expect to timeout on the first wait. The 2nd frame should be rejected immediately (fail fast on UTF-8). If we timeout, we expect the connection is failed at least then, since the complete message payload is not valid UTF-8.
Case Description
Same as Case 6.4.1, but we send message not in 3 frames, but in 3 chops of the same message frame.
MESSAGE PARTS:
PART1 = κόσμε (cebae1bdb9cf83cebcceb5)
PART2 = (f4908080)
PART3 = edited (656469746564)
Case Expectation
The first chop is accepted, we expect to timeout on the first wait. The 2nd chop should be rejected immediately (fail fast on UTF-8). If we timeout, we expect the connection is failed at least then, since the complete message payload is not valid UTF-8.
Case Description
Same as Case 6.4.2, but we send message not in 3 frames, but in 3 chops of the same message frame.
MESSAGE PARTS:
PART1 = κόσμε (cebae1bdb9cf83cebcceb5f4)
PART2 = (90)
PART3 = ()
Case Expectation
The first chop is accepted, we expect to timeout on the first wait. The 2nd chop should be rejected immediately (fail fast on UTF-8). If we timeout, we expect the connection is failed at least then, since the complete message payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κόσμε
cebae1bdb9cf83cebcceb5
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
ce
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κ
ceba
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
κ
cebae1
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
κ
cebae1bd
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κό
cebae1bdb9
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
κό
cebae1bdb9cf
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κόσ
cebae1bdb9cf83
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
κόσ
cebae1bdb9cf83ce
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κόσμ
cebae1bdb9cf83cebc
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is not valid UTF-8 in one fragment.
MESSAGE:
κόσμ
cebae1bdb9cf83cebcce
Case Expectation
The connection is failed immediately, since the payload is not valid UTF-8.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE:
κόσμε
cebae1bdb9cf83cebcceb5
Case Expectation
The message is echo'ed back to us.
Case Description
Send a text message with payload which is valid UTF-8 in one fragment.
MESSAGE: