Newer Version Available

This content describes an older version of this product. View Latest

Subscribe to a Channel and Receive Event Notifications

Use EMP Connector to subscribe to a platform event channel.
  1. In the /src/main/java/com/salesforce/emp/connector/example folder, open the LoginExample.java source file.
    1/* 
    2 * Copyright (c) 2016, salesforce.com, inc.
    3 * All rights reserved.
    4 * Licensed under the BSD 3-Clause license. 
    5 * For full license text, see LICENSE.TXT file in the repo root  or https://opensource.org/licenses/BSD-3-Clause
    6 */
    7package com.salesforce.emp.connector.example;
    8
    9import static com.salesforce.emp.connector.LoginHelper.login;
    10
    11import java.net.URL;
    12import java.util.Map;
    13import java.util.concurrent.TimeUnit;
    14import java.util.function.Consumer;
    15
    16import com.salesforce.emp.connector.BayeuxParameters;
    17import com.salesforce.emp.connector.EmpConnector;
    18import com.salesforce.emp.connector.LoginHelper;
    19import com.salesforce.emp.connector.TopicSubscription;
    20
    21/**
    22 * An example of using the EMP connector using login credentials
    23 */
    24public class LoginExample {
    25    public static void main(String[] argv) throws Exception {
    26        if (argv.length < 3 || argv.length > 4) {
    27            System.err.println(
    28                "Usage: LoginExample username password channel [replayFrom]");
    29            System.exit(1);
    30        }
    31        long replayFrom = EmpConnector.REPLAY_FROM_EARLIEST;
    32        if (argv.length == 4) {
    33            replayFrom = Long.parseLong(argv[3]);
    34        }
    35
    36        BearerTokenProvider tokenProvider = new BearerTokenProvider(() -> {
    37            try {
    38                return login(argv[0], argv[1]);
    39            } catch (Exception e) {
    40                e.printStackTrace(System.err);
    41                System.exit(1);
    42                throw new RuntimeException(e);
    43            }
    44        });
    45
    46        BayeuxParameters params = tokenProvider.login();
    47
    48        Consumer<Map<String, Object>> consumer = event -> 
    49            System.out.println(String.format("Received:\n%s", event));
    50
    51        EmpConnector connector = new EmpConnector(params);
    52
    53        connector.setBearerTokenProvider(tokenProvider);
    54
    55        connector.start().get(5, TimeUnit.SECONDS);
    56
    57        TopicSubscription subscription = connector.subscribe(
    58            argv[2], replayFrom, consumer).get(5, TimeUnit.SECONDS);
    59
    60        System.out.println(String.format("Subscribed: %s", subscription));
    61    }
    62}
  2. Subscribe to an event channel by running the LoginExample class.
    1. To subscribe to a custom event channel, see Subscribe to a Custom Platform Event Channel.
    2. To subscribe to a standard event channel, see Subscribe to a Standard Platform Event Channel.