Overview
Activity Streams is a simple specification used to describe social actions around the web. http://activitystrea.ms
This library provides the following Activity Stream Models on Mongoose:
For details on the properties each see pne of the following specifications:
Usage
Implicit
var asmsDB = require('activity-streams-mongoose')(options);
Or explicit if you need a Mongoose reference in your calling code
var mongoose = require('mongoose');
mongoose.connect(siteConf.mongoUrl);
var asmsDB = require('activity-streams-mongoose')(mongoose, options);
Options
-
mongoUrl --> If you want to let activity-streams-mongoose
manage Mongoose for you, just pass the url for the MongoDB.
Example format is mongodb://localhost/mongodb-asms
-
redis --> Hash including keys specifying connection properties
Redis is required to be able to publish activities and subscribe to Activity Streams
To create an activity object you can do
var cf = new asmsDB.ActivityObject({displayName: "Cloud Foundry" , url: "http://www.cloudfoundry.com"});
cf.save(function (err) {
}
});
To create an activity with an associated activity object you can do
var testAct = new asmsDB.Activity({title: "Started the app", target: target._id});
testAct.save(function (err) {
});
To query the Activity Streams do
Asking for the latest 5 from stream "sfgiants"
asmsDB.getActivityStream("sfgiants", 5, function (err, docs) {
docs.forEach(function(doc){console.log(doc);});
});
Asking for the latest 5 from firehose
asmsDB.getActivityStreamFirehose(5, function (err, docs) {
docs.forEach(function(doc){console.log(doc);});
});
To publish an activity you can do
var testAct = new asmsDB.Activity({title: "Started the app", target: target._id});
asmsDB.publish('cloudfoundry-stream', testAct);
Note: This will save the activity and then publish it to the stream name
To subscribe to an Activity Stream do
var clientSendFx = function(channel, json) {
io.sockets.in(client.handshake.sid).send(json);
}
asmsDB.subscribe('cloudfoundry-stream', clientSendFx);
To close the Activity Stream DB connections (MongoDB and Redis)
asmsDB.close();
To run tests
npm test
TODO
- Add support for location for objects