

# 步驟 4：傳送和接收第一條訊息
<a name="getting-started-chat-send-and-receive"></a>

使用您的聊天字符連線至聊天室，並傳送您的第一條訊息。下面提供了 JavaScript 程式碼範例。您也可使用 IVS 用戶端 SDK：請參閱[聊天 SDK：Android 版指南](chat-sdk-android.md)、[聊天 SDK：iOS 版指南](chat-sdk-ios.md)和[聊天 SDK：JavaScript 版指南](chat-sdk-js.md)。

**區域服務：**下面的程式碼範例參考您「所選擇的受支援區域」。Amazon IVS 聊天功能提供區域性端點，您可以用來提出請求。對於Amazon IVS 聊天功能訊息 API，區域端點的一般語法為：
+ wss://edge.ivschat.<區域代碼>.amazonaws.com

例如，wss://edge.ivschat.us-west-2.amazonaws.com 是位於美國西部 (奧勒岡) 區域的端點。如需支援的區域清單，請參閱 *AWS 一般參考*中的 [Amazon IVS 頁面](https://docs.aws.amazon.com/general/latest/gr/ivs.html)上的 Amazon IVS 聊天功能資訊。

```
/*
1. To connect to a chat room, you need to create a Secure-WebSocket connection
using the client token you created in the previous steps. Use one of the provided 
endpoints in the Chat Messaging API, depending on your AWS region.
*/
const chatClientToken = "GENERATED_CHAT_CLIENT_TOKEN_HERE";
const socket = "wss://edge.ivschat.us-west-2.amazonaws.com"; // Replace “us-west-2” with supported region of choice.
const connection = new WebSocket(socket, chatClientToken);

/*
2. You can send your first message by listening to user input 
in the UI and sending messages to the WebSocket connection.
*/
const payload = {
  "Action": "SEND_MESSAGE",
  "RequestId": "OPTIONAL_ID_YOU_CAN_SPECIFY_TO_TRACK_THE_REQUEST",
  "Content": "text message",
  "Attributes": {
    "CustomMetadata": "test metadata"
  }
}
connection.send(JSON.stringify(payload));

/*
3. To listen to incoming chat messages from this WebSocket connection 
and display them in your UI, you must add some event listeners.
*/
connection.onmessage = (event) => {
  const data = JSON.parse(event.data);
  displayMessages({
    display_name: data.Sender.Attributes.DisplayName,
    message: data.Content,
    timestamp: data.SendTime
  });
}

function displayMessages(message) {
  // Modify this function to display messages in your chat UI however you like.
  console.log(message);
}

/*
4. Delete a chat message by sending the DELETE_MESSAGE action to the WebSocket 
connection. The connected user must have the "DELETE_MESSAGE" permission to 
perform this action.
*/

function deleteMessage(messageId) {
  const deletePayload = {
    "Action": "DELETE_MESSAGE",
    "Reason": "Deleted by moderator",
    "Id": "${messageId}"
  }
  connection.send(deletePayload);
}
```

恭喜您！所有步驟均已完成！您現在擁有了一個可以傳送或接收訊息的簡便的聊天應用程式。