angularjs-chat
angularjs-chat copied to clipboard
AngularJS Chat - Enable chat messaging experiences in your iOS, Android and Web apps.
AngularJS Chat
Enable messaging experiences for Web, iOS and Android apps. Coming Soon AngularJS and the best frameworks Ionic, PubNub, PhoneGap

NPM Install
npm install angular-chat
Bower Install
bower install angular-chat
Include the files
Include the angular chat files in your template.
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/rltm/web/rltm.js"></script>
<script src="bower_components/angular-chat/angular-chat.js"></script>
Include the Angular module
var chat = angular.module('BasicChat', ['chat']);
Configure
In order to use angularjs-chat, you must configure a connection to a realtime service. This library includes rltm.js as a dependency which lets you switch between realtime service providers like Socket.io and PubNub easily. We recommend setting up with PubNub to get started quickly and scale to infinity.
angular.module('chat').constant('config', {
rltm: {
service: "pubnub",
config: {
"publishKey": "demo",
"subscribeKey": "demo"
}
}
});
Example Controller
The chat module exposes an object called Messages which includes
a send and receive method.
chat.controller( 'chat', [ 'Messages', '$scope', function( Messages, $scope ) {
// Message Inbox
$scope.messages = [];
// Receive Messages
Messages.receive(function(message) {
$scope.messages.push(message);
});
// Send Messages
$scope.send = function() {
Messages.send({
data: $scope.textbox
});
};
}]);
In this controller we keep a list of messages in $scope.messages and
push a new message every time the Messages.receive() callback is called.
To send a message over the Internet, we use the Messages.send() method
and attach it to ```$scope.send()```` so we can call bind it to the DOM.
Create your view
We use the $scope.send() method and $scope.messages variable in
our view.
<div ng-app="BasicChat">
<div ng-controller="chat">
<div ng-repeat="message in messages">
<strong>{{message.user.name}}:</strong>
<span>{{message.data}}</span>
</div>
<form ng-submit="send()">
<input ng-model="textbox">
</form>
</div>
</div>
Set User ID
Set some identification for this user.
Messages.user({ id: MY_USER_ID, name : sillyname() });
Send to User
Send a message to another user.
Messages.send({ to: target_user_id, data : message_body });
If you want random user id's that are transient... you can publish the LIST of users to the "global" channel and receive each user who has come online.
Basic Example
Check out /examples/basic/index.html for an example of a chatroom that
every visitor can chat in.
Support Desk (many to one) Example
Check out /examples/support-chat/index.html and
/examples/support-chat/admin.html for an example of a embedded support
type chatroom. The page index.html can only chat with the user on
admin.html. The page admin.html creates a new instance of a
chatroom for every new user on index.html.