text: /*
   * Copyright (c) 2008-2021, Hazelcast, Inc. All Rights Reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  'use strict';
  
  const { Client } = require('hazelcast-client');
  
  (async () => {
      try {
          // Start the Hazelcast Client and connect to an already running
          // Hazelcast Cluster on 127.0.0.1
          const hz = await Client.newHazelcastClient();
          // Get a Topic called 'my-distributed-topic'
          const topic = await hz.getReliableTopic('my-distributed-topic');
          // Add a Listener to the Topic
          topic.addMessageListener((message) => {
              console.log(message);
              // Shut down this Hazelcast Client once the message is received
              hz.shutdown().catch((err) => {
                  console.error('Failed to shut down the client:', err);
              });
          });
          // Publish a message to the Topic
          await topic.publish('Hello to distributed world');
      } catch (err) {
          console.error('Error occurred:', err);
          process.exit(1);
      }
  })();
  