This commit is contained in:
thosakwe 2017-04-17 08:37:17 -04:00
parent 6e1c1f4191
commit e8f49bdf37
3 changed files with 26 additions and 7 deletions

View file

@ -1,5 +1,5 @@
# angel_websocket
[![1.0.4+3](https://img.shields.io/badge/pub-1.0.4+3-brightgreen.svg)](https://pub.dartlang.org/packages/angel_websocket)
[![1.0.5](https://img.shields.io/badge/pub-1.0.5+3-brightgreen.svg)](https://pub.dartlang.org/packages/angel_websocket)
[![build status](https://travis-ci.org/angel-dart/websocket.svg)](https://travis-ci.org/angel-dart/websocket)
WebSocket plugin for Angel.
@ -56,8 +56,10 @@ class MyController extends WebSocketController {
// Dependency injection works, too..
@ExposeWs("read_message")
void sendMessage(WebSocketContext socket, Db db) async {
socket.send("found_message", db.collection("messages").findOne(where.id("...")));
void sendMessage(WebSocketContext socket, WebSocketAction, Db db) async {
socket.send(
"found_message",
db.collection("messages").findOne(where.id(action.data['message_id'])));
}
// Event filtering
@ -68,6 +70,18 @@ class MyController extends WebSocketController {
}
```
**Client Use**
This repo also provides two client libraries `browser` and `io` that extend the base
`angel_client` interface, and allow you to use a very similar API on the client to that of
the server.
The provided clients also automatically try to reconnect their WebSockets when disconnected,
which means you can restart your development server without having to reload browser windows.
They also provide streams of data that pump out filtered data as it comes in from the server.
Clients can even perform authentication over WebSockets.
**In the Browser**
```dart
@ -99,11 +113,11 @@ main() async {
**CLI Client**
```dart
import "package:angel_framework/angel_framework" as srv;
import "package:angel_framework/common.dart";
import "package:angel_websocket/io.dart";
// You can include these in a shared file and access on both client and server
class Car extends srv.Model {
class Car extends Model {
int year;
String brand, make;

View file

@ -230,7 +230,12 @@ class AngelWebSocket extends AngelPlugin {
/// Hooks a service up to have its events broadcasted.
hookupService(Pattern _path, HookedService service) {
String path = _path.toString();
service.afterAll(serviceHook(path));
service.after([
HookedServiceEvent.CREATED,
HookedServiceEvent.MODIFIED,
HookedServiceEvent.UPDATED,
HookedServiceEvent.REMOVED
], serviceHook(path));
_servicesAlreadyWired.add(path);
}

View file

@ -2,7 +2,7 @@ name: angel_websocket
description: WebSocket plugin for Angel.
environment:
sdk: ">=1.19.0"
version: 1.0.4+3
version: 1.0.5
author: Tobe O <thosakwe@gmail.com>
homepage: https://github.com/angel-dart/angel_websocket
dependencies: