A web application communicates with a 3rd party server-side software via a web socket in the following setup:
For testing purposes, I have configured the following setup on a single machine (which, concerning my problem described below, behaves the same way):
The regular setup works as long as the initial connection is done with the wss
protocol rather than with ws
. In that case, a fixed number of frames is sent, then the 3rd party server-side software sends some frames back, and the "dialogue" continues (as displayed by Chrome's dev tools).
When using ws
in either setup, only the initial fixed number of frames is sent via the web socket, but nothing is received back.
To analyze the issue, I have configured failed request tracing in IIS to log everything at each of the URL rewrites. One conspicuous aspect I can recognize in the logs is that the second URL rewrite log (the one closer to the 3rd party server) appears to show me how an answer is sent back (starting with a line of type WEBSOCKET_WRITE_FRAGMENT_START
), whereas at that point, the first URL rewrite log indicates an I/O error ("The I/O operation has been aborted because of either a thread exit or an application request (0x800703e3)").
Why does the web socket response not get through?
Some additional notes:
User contributions licensed under CC BY-SA 3.0