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.