Publish additional context to the Aphlict server.
Summary:
Ref T4324. As well as sending the key for the notification, also publish the notification type and a list of subscribers to the Aphlict server.
The idea here is that the Aphlict server passes anything within the `data` key to the clients, whereas other keys (such as `subscribers`) will be used by the server to determine where the notifications should be routed.
Note that these changes don't do anything useful, but are a prerequisite for further work on T4324.
Test Plan:
Sent myself test notifications at `/notification/status/`. Also inspected the Aphlict server debug output:
```
> sudo ./bin/aphlict --foreground
Starting server in foreground, ignoring pidfile...
Launching server:
$ node '/usr/src/phabricator/support/aphlict/server/aphlict_server.js' --port='22280' --admin='22281' --host='localhost' --user='aphlict' --log='/var/log/aphlict.log'
[Thu Jun 05 2014 18:38:14 GMT+0000 (UTC)] Started Server (PID 15437)
[Thu Jun 05 2014 18:38:16 GMT+0000 (UTC)] <FlashPolicy> Policy Request From ::ffff:10.0.0.1
[Thu Jun 05 2014 18:38:16 GMT+0000 (UTC)] <Listener/1> Connected from ::ffff:10.0.0.1
[Thu Jun 05 2014 18:38:19 GMT+0000 (UTC)] notification: {"data":{"key":"6021516228036848559","type":"notification"},"subscribers":["PHID-USER-cb5af6p4oepy5tlgqypi"]}
[Thu Jun 05 2014 18:38:19 GMT+0000 (UTC)] <Listener/1> Wrote Message
```
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: epriestley, Korvin
Maniphest Tasks: T4324
Differential Revision: https://secure.phabricator.com/D9396
This commit is contained in:
committed by
epriestley
parent
ac2b91711f
commit
fe98aa6839
@@ -175,9 +175,12 @@ final class PhabricatorFeedStoryPublisher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function sendNotification($chrono_key) {
|
private function sendNotification($chrono_key) {
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'key' => (string)$chrono_key,
|
'data' => array(
|
||||||
|
'key' => (string)$chrono_key,
|
||||||
|
'type' => 'notification',
|
||||||
|
),
|
||||||
|
'subscribers' => $this->subscribedPHIDs,
|
||||||
);
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
final class PhabricatorNotificationClient {
|
final class PhabricatorNotificationClient {
|
||||||
|
|
||||||
const EXPECT_VERSION = 4;
|
const EXPECT_VERSION = 5;
|
||||||
|
|
||||||
public static function getServerStatus() {
|
public static function getServerStatus() {
|
||||||
$uri = PhabricatorEnv::getEnvConfig('notification.server-uri');
|
$uri = PhabricatorEnv::getEnvConfig('notification.server-uri');
|
||||||
|
|||||||
@@ -120,9 +120,9 @@ var receive_server = http.createServer(function(request, response) {
|
|||||||
request.on('end', function () {
|
request.on('end', function () {
|
||||||
++messages_in;
|
++messages_in;
|
||||||
|
|
||||||
var data = JSON.parse(body);
|
var msg = JSON.parse(body);
|
||||||
debug.log('notification: ' + JSON.stringify(data));
|
debug.log('notification: ' + JSON.stringify(msg));
|
||||||
broadcast(data);
|
broadcast(msg.data);
|
||||||
response.end();
|
response.end();
|
||||||
});
|
});
|
||||||
} else if (request.url == '/status/') {
|
} else if (request.url == '/status/') {
|
||||||
@@ -139,7 +139,7 @@ var receive_server = http.createServer(function(request, response) {
|
|||||||
'messages.in': messages_in,
|
'messages.in': messages_in,
|
||||||
'messages.out': messages_out,
|
'messages.out': messages_out,
|
||||||
'log': config.log,
|
'log': config.log,
|
||||||
'version': 4
|
'version': 5
|
||||||
};
|
};
|
||||||
|
|
||||||
response.write(JSON.stringify(status));
|
response.write(JSON.stringify(status));
|
||||||
|
|||||||
Reference in New Issue
Block a user