-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support WebSocket connections in standalone VM HTTP library #2001
Comments
This comment was originally written by er...@codesmithtools.com Really wish this was available on the server side so I could keep from having to resort to using Node.js for it. I'm guessing this isn't going to be on the radar for a while though. |
This is on the radar and something we will start looking at within a few weeks. Some initial plumbing was added in http://code.google.com/p/dart/source/detail?r=6464. |
This comment was originally written by er...@codesmithtools.com Awesome! |
Added Started label. |
Initial implementation of the server end of the web socket in the following changes: http://code.google.com/p/dart/source/detail?r=6998 |
Web socket client implemented in http://code.google.com/p/dart/source/detail?r=7224 and with bug-fixes in follow-up changes. Added Fixed label. |
Removed Area-IO label. |
…, tools, watcher Revisions updated by `dart tools/rev_sdk_deps.dart`. ffi (https://github.com/dart-lang/ffi/compare/04fa38a..6d8fa8d): 6d8fa8d 2023-05-01 dependabot[bot] Bump actions/checkout from 3.5.0 to 3.5.2 (#191) lints (https://github.com/dart-lang/lints/compare/f09399a..ba7d75e): ba7d75e 2023-04-26 Phil Quitslund 2.1.0 (#107) e6b82b6 2023-04-26 Devon Carew Update lint-propoposal.md (#115) markdown (https://github.com/dart-lang/markdown/compare/5f98aea..82b050d): 82b050d 2023-04-30 dependabot[bot] Bump actions/checkout from 3.5.0 to 3.5.2 (#536) matcher (https://github.com/dart-lang/matcher/compare/cb6b68c..7228c26): 7228c26 2023-04-27 dependabot[bot] Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (#215) mockito (https://github.com/dart-lang/mockito/compare/f851e17..beb45ba): beb45ba 2023-04-26 yanok Remove unused local variable d2e155f 2023-04-26 yanok Require Dart SDK >= 2.19 b777874 2023-04-26 yanok First part of Dart3 support in Mockito ad3c9ae 2023-04-26 yanok Fix the type variable capture problem 6c448b2 2023-04-25 oprypin Keep generated mock files at language version 2.19 06f353e 2023-04-13 nbosch Deprecate the mixingIn argument to MockSpec f3ecdad 2023-04-11 oprypin Fix violations of `prefer_final_locals`, `prefer_final_in_for_each` lints test (https://github.com/dart-lang/test/compare/c9a3138..b252463): b252463a 2023-05-01 dependabot[bot] Bump github/codeql-action from 2.2.9 to 2.3.2 (#2001) test_process (https://github.com/dart-lang/test_process/compare/946bc27..89c4fdc): 89c4fdc 2023-05-01 dependabot[bot] Bump actions/checkout from 3.5.0 to 3.5.2 (#42) tools (https://github.com/dart-lang/tools/compare/5c9f45c..516995e): 516995e 2023-04-28 Danny Tuppeny Change "plugins" to "extensions" for VS Code (#75) watcher (https://github.com/dart-lang/watcher/compare/00aa79b..6c0c838): 6c0c838 2023-05-01 dependabot[bot] Bump actions/checkout from 3.5.0 to 3.5.2 (#144) Change-Id: I36d0db7f41a26e3f1430b86eff5d63b8e65c1616 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300321 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Auto-Submit: Devon Carew <devoncarew@google.com>
The HTTP library in the standalone VM should support the WebSocket protocol.
It might look something like this:
interface HttpWebSocketConnection {
void onMessage(...)
void sendMessage(...)
...
}
interface HttpServer {
...
// For handling WebSocket connections.
onWebSocketConnect(HttpWebSocketConnection connection)
}
With this approach the HttpServer will handle the connection upgrade automatically.
Alternatively it should be possible to control whether to upgrade or not, e.g.:
interface HttpWebSocketOutound {
void sendMessage(...)
...
}
interface WebSocketConnections {
void onConnect(HttpWebSocketOutound outbound)
void onMessage(...)
void onDisconnect(...)
}
interface HttpServer {
...
// For handling WebSocket requests.
WebSocketConnections onWebSocketConnect(HttpRequest request);
}
If onWebSocketConnect returns null no upgrade/handshake is performed. If an instance of WebSocketConnections is returned this object receives callbacks when something happens in the WebSocket connection. The outbound argument passed to onConnect is used for sending messages.
The text was updated successfully, but these errors were encountered: