Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/
Meeting/
Referência de API do servidor/
Envio por push de evento de reunião/
Push de evento em nível de reunião/
Exemplo
Atualizado em 2023-08-02 GMT+08:00
Exemplo
Cenários
Esta seção descreve a sequência de chamadas de APIs para estabelecer uma conexão WebSocket, assinar informações, enviar informações e manter a conexão.
Processo do serviço
A figura a seguir mostra o processo de estabelecimento de conexão WebSocket, assinatura e envio de informações.
Figura 1 Processo de envio de mensagens de WebSocket
- Uma aplicação de terceiros obtém um token de controle de reunião e o URL do servidor necessário para estabelecer uma conexão WebSocket usando o ID da reunião e a senha do host. Para mais detalhes, consulte Obtenção de um token de controle de reunião.
- A aplicação de terceiros usa o token de controle de medição para obter um token para estabelecer uma conexão WebSocket. Para mais detalhes, consulte Obtenção de um token para estabelecer uma conexão WebSocket.
- A aplicação de terceiros estabelece uma conexão WebSocket com o servidor.
- A aplicação de terceiros assina informações que precisam ser enviadas pelo servidor do Huawei Cloud Meeting.
- O servidor do Huawei Cloud Meeting envia as informações de subscrição.
- A aplicação de terceiros envia uma mensagem de pulsação pelo menos uma vez dentro de 180 segundos.
Exemplo de código 1
Código para o estabelecimento da conexão WebSocket, a subscrição e a entrega e recepção de mensagens
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>WebSocket Connection Establishment and Message Delivery and Receiption</title> <script type="text/javascript"> function WebSocketTest() { if ("WebSocket" in window) { // Establish a WebSocket connection. var confID = "900964776"; var tempToken = "&tmpToken=" + "cnr8bee7b054df0baf766d5abca1f9d3e63a5896bdb603de7a4"; var uri = "wss://100.94.23.40:443/cms/open/websocket/confctl/increment/conn?confID=" + confID + tempToken; var ws = new WebSocket(uri); ws.onopen = function() { // WebSocket connection established. Send a subscription message. var senddata = JSON.stringify({ sequence: "000000000000000002611382273415", action: "Subscribe", data: JSON.stringify({ subscribeType: [ "ConfBasicInfoNotify", "ConfDynamicInfoNotify", "ParticipantsNotify", "AttendeesNotify", "SpeakerChangeNotify", "NetConditionNotify", "CustomMultiPicNotify", "InviteResultNotify", "InterpreterGroupNotify", "NetworkQualityNotify" ], confToken: "Basic Y25yYzNiNmUxNGViNTU4NDgwMjc4NmZlYzAwYmZmNjI3MTQzNTU0ODUzY2NmMzZiYmNi", }), }); ws.send(senddata); alert("Sending subscription message..." + senddata); }; ws.onmessage = function (evt) { var received_msg = evt.data; // alert("Data received." + received_msg); }; } else { // The browser does not support WebSocket. alert("Your browser does not support WebSocket."); } } </script> </head> <body> <div id="meeting"> <a href="javascript:WebSocketTest()">WebSocket connection establishment and subscription</a> </div> </body> </html>
Exemplo de código 2
Código para estabelecimento de conexão em um cliente de WebSocket Java e entrega e recepção de mensagens
import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org.java_websocket.WebSocket; import org.java_websocket.client.WebSocketClient; import org.java_websocket.handshake.ServerHandshake; import com.google.gson.Gson; public class WebSocketClientDemo extends WebSocketClient{ public WebSocketClientDemo(String url) throws URISyntaxException { super(new URI(url)); } @Override public void onOpen(ServerHandshake shake) { System.out.println("Hand shake!"); for(Iterator<String> it = shake.iterateHttpFields(); it.hasNext();) { String key = it.next(); System.out.println(key + ":" + shake.getFieldValue(key)); } } @Override public void onMessage(String paramString) { System.out.println("receive msg: " + paramString); } @Override public void onClose(int paramInt, String paramString, Boolean paramBoolean) { System.out.println("Channel close!"); } @Override public void onError(Exception e) { System.out.println("error: " + e); } public static void main(String[] args) throws Exception{ try { // Establish a WebSocket connection. String confID = "900964776"; String tempToken = "&tmpToken=" + "cnr71e9a422216efb057719001f5e210b103ca232b3c8ced73b"; String url = "wss://100.94.23.40:443/cms/open/websocket/confctl/increment/conn?confID=" + confID + tempToken; WebSocketClientDemo client = new WebSocketClientDemo(url); client.connect(); while (!client.getReadyState().equals(WebSocket.READYSTATE.OPEN)) { System.out.println("Not open yet"); Thread.sleep(100); } System.out.println("WebSocket channel connected!"); // WebSocket connection established. Send a subscription message. Gson gson = new Gson(); List<SubscribeType> subscribeTypes = new ArrayList<>(); subscribeTypes.add(SubscribeType.ConfBasicInfoNotify); subscribeTypes.add(SubscribeType.ConfDynamicInfoNotify); subscribeTypes.add(SubscribeType.ParticipantsNotify); subscribeTypes.add(SubscribeType.AttendeesNotify); subscribeTypes.add(SubscribeType.SpeakerChangeNotify); subscribeTypes.add(SubscribeType.NetConditionNotify); subscribeTypes.add(SubscribeType.InviteResultNotify); SubscribeReq subscribeReq = SubscribeReq.builder() .subscribeType(subscribeTypes) .confToken("Basic Y25yMjFlODA4NjRmZmRhMjg0ZTIwOTYwNTg4YjI5MjMzMmY3ZDc3ZGE1YmFlNjlhZGMz") .build(); SubscribeMsgFrame subscribeMsgFrame = SubscribeMsgFrame.builder() .action("Subscribe") .sequence("000000000000000002611382271289") .data(gson.toJson(subscribeReq)) .build(); String jsonStr = gson.toJson(subscribeMsgFrame); client.send(jsonStr); } catch (URISyntaxException e) { e.printStackTrace(); } } } Connection establishment and message delivery and reception on a Java WebSocket client SubscribeReq.java ------ import java.util.List; import lombok.Builder; import lombok.Getter; import lombok.Setter; @Getter @Setter @Builder public class SubscribeReq { /** * Subscription type */ List<SubscribeType> subscribeType; /** * Meeting token */ String confToken; } SubscribeMsgFrame .java ------ import lombok.Builder; import lombok.Getter; import lombok.Setter; @Getter @Setter @Builder public class SubscribeMsgFrame { /** * Message type */ String action; /** * Random sequence number of a message */ String sequence; /** * Message body */ String data; }
Tópico principal: Push de evento em nível de reunião
Feedback
Esta página foi útil?
Deixar um comentário
Obrigado por seus comentários. Estamos trabalhando para melhorar a documentação.
O sistema está ocupado. Tente novamente mais tarde.