summaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-11-13 19:58:29 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-11-13 19:58:29 +0900
commit0a994e5b9885265873e02b3b3ab9add7ec7e7e6b (patch)
tree3945fc92b149c00cfd103792a50811ade2bc9eae /src/api
parentなんかもうめっちゃ変えた (diff)
downloadsharkey-0a994e5b9885265873e02b3b3ab9add7ec7e7e6b.tar.gz
sharkey-0a994e5b9885265873e02b3b3ab9add7ec7e7e6b.tar.bz2
sharkey-0a994e5b9885265873e02b3b3ab9add7ec7e7e6b.zip
Add access log widget
Diffstat (limited to 'src/api')
-rw-r--r--src/api/stream/requests.ts19
-rw-r--r--src/api/streaming.ts6
2 files changed, 25 insertions, 0 deletions
diff --git a/src/api/stream/requests.ts b/src/api/stream/requests.ts
new file mode 100644
index 0000000000..2c36e58b6e
--- /dev/null
+++ b/src/api/stream/requests.ts
@@ -0,0 +1,19 @@
+import * as websocket from 'websocket';
+import Xev from 'xev';
+
+const ev = new Xev();
+
+export default function homeStream(request: websocket.request, connection: websocket.connection): void {
+ const onRequest = request => {
+ connection.send(JSON.stringify({
+ type: 'request',
+ body: request
+ }));
+ };
+
+ ev.addListener('request', onRequest);
+
+ connection.on('close', () => {
+ ev.removeListener('request', onRequest);
+ });
+}
diff --git a/src/api/streaming.ts b/src/api/streaming.ts
index 0e512fb210..6caf7db3e8 100644
--- a/src/api/streaming.ts
+++ b/src/api/streaming.ts
@@ -9,6 +9,7 @@ import isNativeToken from './common/is-native-token';
import homeStream from './stream/home';
import messagingStream from './stream/messaging';
import serverStream from './stream/server';
+import requestsStream from './stream/requests';
import channelStream from './stream/channel';
module.exports = (server: http.Server) => {
@@ -27,6 +28,11 @@ module.exports = (server: http.Server) => {
return;
}
+ if (request.resourceURL.pathname === '/requests') {
+ requestsStream(request, connection);
+ return;
+ }
+
// Connect to Redis
const subscriber = redis.createClient(
config.redis.port, config.redis.host);