Open Channel
Open Channel enables thousands of users to chat publicly.
An open channel is for public conversation. Any user may join and participate in it without any access restriction. It is a perfect fit when you want to have a fixed number of channels for your application.
Creating an Open Channel
An open channel can be created with the help of create()
function of OpenChannel
class.
cc.OpenChannel.create(CHANNEL_NAME, function(error, openChannel) {
if(!error){
console.log("Open Channel successfully created", openChannel)
}
});
Getting the list of all open channels
To retrieve the list of existing open channels, you would need to use OpenChannelListQuery
class. The get() function of OpenChannelListQuery
retrieves the list from ChatCamp backend and the listener is called once the result is available.
var openChannelListQuery = cc.OpenChannel.createOpenChannelListQuery();
openChannelListQuery.get(function(error, openChannelList){
if(!error){
console.log("My Open Channels List Retreived", openChannelList)
}
})
Getting instance of Open Channel based on ID
It is possible to retrieve an instance of an Open Channel if you have the channel ID by using get()
function of OpenChannel
class.
cc.OpenChannel.get(CHANNEL_ID, function(error, openChannel) {
if(!error){
console.log("Open Channel Successfully retrieved", openChannel)
}
})
CHANNEL_ID
is the ID of your open channel.
Joining an Open Channel
To be able to participate in an open channel, you first need to join it. You may use join()
function of OpenChannel
class for this.
cc.OpenChannel.get(CHANNEL_ID, function(error, openChannel) {
openChannel.join(function(error) {
if(!error){
console.log("Open Channel Successfully Joined")
}
})
})
Leaving an Open Channel
To stop receiving messages and notifications from an Open Channel, you would need to leave the open channel. You may use leave()
function of OpenChannel
class for this.
cc.OpenChannel.get(CHANNEL_ID, function(error, openChannel) {
openChannel.leave(function(error) {
if(!error){
console.log("Open Channel Successfully Left")
}
})
})
Sending Messages in Open Channel
A participant of an open channel can send two types of messages in it:
TEXT
: a text messageATTACHMENT
: a binary attachment like image, document etc.
Sending Text Message
openChannel.sendMessage(MESSAGE, function(error, message){
if(!error){
console.log("Message sent successfully", message)
}
})
Please note openChannel
is the instance of Class OpenChannel
.
Sending Attachment
openChannel.sendAttachment(ATTACHMENT, function(progress, total){
console.log("Tracking progress of upload", progress, total)
}, function(error, message){
console.log("Attachment sent successfully", message)
})
Receiving Messages
In ChatCamp, ChannelListener
is used to handle information from the server. This information can be a new chat message, a new open channel created by some other user etc.
To receive a message in an Open Channel, onOpenChannelMessageReceived
ChannelListener is used.
let channelListener = new cc.ChannelListener();
channelListener.onOpenChannelMessageReceived = function(openChannel, message) {
console.log("New Message received in open channel")
}
cc.addChannelListener(CHANNEL_LISTENER_ID, channelListener);
Retrieving Previous Messages
Previous messages of an open channel can be retrieved. Participants of the open channel can only retrieve it.
let previousMessageListQuery = openChannel.createPreviousMessageListQuery();
previousMessageListQuery.setLimit(LIMIT);
previousMessageListQuery.setReference(REFERENCE);
previousMessageListQuery.setSortBy(SORT_BY);
previousMessageListQuery.load(function(previousMessageListQueryError, messages) {
if(!previousMessageListQueryError){
console.log("Previous messages are successfully loaded")
}
}
LIMIT
is the number of previous messages required to be loaded.REFERENCE
is the referencemessage_id
. Messages older than thismessage_id
will be loaded. In case to load most recent messages, passREFERENCE
asnull
.SORT_BY
means to sort the list by most recently sent and most recently updated. Possible values are "INSERTED_AT" or "UPDATED_AT"
Updated less than a minute ago