Devido às recentes necessidades de trabalho, é necessário um serviço websocket para interagir diretamente com várias páginas da web
Controle remoto como um controle remoto
Mas eu olhei no shopping... É muito caro
Não há um adequado no github, a maioria deles é do lado do cliente
então eu vou escrever um eu mesmo
endereço do github: https://github.com/ljason1993/WebSocketServer-unreal
Este código é o que eu deduzi do Plug-in de Rede Experimental WebSocket oficial
Portanto, também é necessário introduzir o plug-in. Claro, foi escrito no plug-in e o plug-in será aberto automaticamente após a instalação do plug-in. Não se preocupe.
Funções atualmente suportadas
1. Inicie o serviço do servidor
2. Suporte a várias conexões de cliente de soquete
3. Suporte a informações bidirecionais
4. Suporte chinês
5. O código-fonte é aberto, você pode modificá-lo livremente e adicionar suas funções favoritas
O exemplo foi escrito, primeiro olhe para a classe derivada de C++
\Plugins\ZWebSocketServer\Content\Blueprint\ZBPCPP_WebSocketServer
Existe um event e event dispatcher usado para enviar as informações recebidas do cliente h5
Ele só precisa ser vinculado pelo usuário, e msg é uma string de informações.Se você gosta de json, xml ou balabala, você pode tomar sua própria decisão.
Olhe para a cena de exemplo novamente
\Plugins\ZWebSocketServer\Content\Level\Example
Como abrir, como vincular eventos, como enviar informações, há exemplos
Nota: As informações de envio são enviadas para todos os clientes. Enviar isso de acordo com o ID do cliente exige que todos trabalhem duro. Estou apenas começando
Sobre como o cliente web se conecta ao cliente ue, vou escrever um exemplo simples, basta dar uma olhada.
Observe que os navegadores que testei incluem edge e chrome (tentei meu navegador Sogou usual, mas não funcionou, está faltando algo)
function MakeWebSocket() {
let ws = new WebSocket("ws://192.168.0.119:26217");
ws.onmessage = function (event) {
event.data.text().then(text => {
console.log(" >LJason< 日志:字符串 ",text);
console.log(" >LJason< 日志:对象 ",JSON.parse(text));
});
};
ws.onerror = function (event) {
console.error(" >LJason< 错误:我BUG了");
};
ws.onclose = function (event) {
console.warn(" >LJason< 警告:我关闭了",event);
};
ws.onopen=function (event) {
console.log(" >LJason< 日志:我打开了++++++++++++++",event);
}
}
Clique em ue para jogar, e veja o print significa sucesso (a porta escrita no exemplo é 26217, você pode alterar conforme necessário)
Use o teste acima em h5 para conectar com sucesso
Primeiro use ue para pressionar 1 na cena de teste
Teste de envio de informações
Recebido com sucesso no lado web
Em seguida, use a web para enviar informações
Entre direto no console
ws.send("你好ue")
Pressione Enter para enviar e ue irá recebê-lo
ok, é simples e rude, estou a caminho de organizar e enviar para o github, deve ser feito hoje
Ele deve ser carregado no ue mall no futuro (as etapas são muito problemáticas, pode ser tarde, espero que seja bem-sucedido)