Notify Attendees in Realtime - Android
When doing livestream, you may want to broadcast message to all the viewers at once.
Let us see, how we can use PubSub to implement this functionality. If you are not familiar with the PubSub mechanism, you can follow this guide.
Notifying Attendees
- We will be publish the message that the sender typed in the
EditTextfield to the topicNOTIFY_ATTENDEES.
- Kotlin
- Java
class SpeakerActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//...
findViewById(R.id.btnSend).setOnClickListener(view -> sendMessage());
}
private fun sendMessage() {
// get message from EditText
val message: String = etmessage.getText().toString()
if (!TextUtils.isEmpty(message)) {
val publishOptions = PubSubPublishOptions()
publishOptions.setPersist(true)
// Sending the Message using the publish method
meeting!!.pubSub.publish("NOTIFY_ATTENDEES", message, publishOptions)
// Clearing the message input
etmessage.setText("")
} else {
Toast.makeText(
this@SpeakerActivity, "Please Enter Message",
Toast.LENGTH_SHORT
).show()
}
}
}
public class SpeakerActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
findViewById(R.id.btnSend).setOnClickListener(view -> sendMessage());
}
private void sendMessage()
{
// get message from EditText
String message = etmessage.getText().toString();
if (!message.equals("")) {
PubSubPublishOptions publishOptions = new PubSubPublishOptions();
publishOptions.setPersist(true);
// Sending the Message using the publish method
meeting.pubSub.publish("NOTIFY_ATTENDEES", message, publishOptions);
// Clearing the message input
etmessage.setText("");
} else {
Toast.makeText(SpeakerActivity.this, "Please Enter Message",
Toast.LENGTH_SHORT).show();
}
}
}
- Now let us show an alert to all the viewers displaying the message posted by the speaker.
- Kotlin
- Java
class ViewerActivity : AppCompatActivity() {
// PubSubMessageListener
val pubSubMessageListener = object : PubSubMessageListener {
override fun onMessageReceived(message: PubSubMessage) {
Log.d("VideoSDK", "NOTIFY_ATTENDEE: ${message.message}")
}
override fun onOldMessagesReceived(messages: List<PubSubMessage>) {
// Persisted message list
Log.d("VideoSDK", "NOTIFY_ATTENDEES: $messages")
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_chat)
//...
// Subscribe for 'NOTIFY_ATTENDEES' topic
meeting!!.pubSub.subscribe("NOTIFY_ATTENDEES", pubSubMessageListener)
}
}
public class ViewerActivity extends AppCompatActivity {
// PubSubMessageListener
PubSubMessageListener pubSubMessageListener = new PubSubMessageListener() {
@Override
public void onMessageReceived(PubSubMessage message) {
Log.d("VideoSDK", "NOTIFY_ATTENDEE: " + message.getMessage());
}
@Override
public void onOldMessagesReceived(List<PubSubMessage> messages) {
// Persisted message list
Log.d("VideoSDK", "NOTIFY_ATTENDEES: " + messages);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//..
// Subscribe for 'NOTIFY_ATTENDEES' topic
meeting.pubSub.subscribe("NOTIFY_ATTENDEES", pubSubMessageListener);
}
}
API Reference
The API references for all the methods and events utilised in this guide are provided below.
Got a Question? Ask us on discord

