CRÉEZ VOTRE MONDE
Multiplay

Message de la salle multiplay

9min
message de la salle multiplay zepeto multiplay fournit une interface d'envoi/réception de messages entre clients et serveurs (room) le serveur peut envoyer des messages exclusivement à des clients individuels ou globalement à tous les clients connectés les types de messages de livraison prennent en charge les types primitive, schema, custom (object) api du serveur l'api du serveur fournit la méthode suivante api description onmessage(type, callback) le serveur zepeto multiplay peut enregistrer les rappels mappés par type pour gérer les messages envoyés par les clients le paramètre type peut être défini sous forme de chaîne client send(type, message) fonction d'envoi de messages à un client spécifique broadcast(type, message) fonction d'envoi de messages à tous les clients connectés à la salle vous pouvez l'envoyer à tous les clients connectés, ou vous pouvez en outre exclure des clients spécifiques de la liste si vous souhaitez connaître l'api zepeto multiplay server, veuillez vous référer au document suivant 📘 veuillez vous référer au guide suivant \[ zepeto multiplay(server) api ] recevoir un message ce qui suit est un exemple d'utilisation de onmessage oncreate() { this onmessage("action", (client sandboxplayer, message string) => { // triggers when 'action' message is sent }); this onmessage(" ", (client sandboxplayer, type, message string) => { // triggers when any other type of message is sent, // excluding "action", which has its own specific handler defined above console log(`${client sessionid} sent ${type} ${message}`); }); } envoyer le message ce qui suit est un exemple d'utilisation de client send oncreate() { this onmessage("echo", (client sandboxplayer, message string) => { // send messge to sender client send("echo", `echo message ${message}`); }); } ce qui suit est un exemple d’utilisation de la diffusion ▼ exemple de diffusion d'un message à tous les clients oncreate() { this onmessage("action", (client sandboxplayer, message string) => { // broadcast a message to all clients this broadcast("action taken", "an action has been taken!"); }); } ▼ exemple de diffusion d'un message avec exclusion de clients spécifiques oncreate() { this onmessage("fire", (client sandboxplayer, message string) => { // sends "fire" event to every client, except the one who triggered it this broadcast("fire", message, { except client }); }); } api cliente l'api client fournit la méthode suivante room addmessagehandler(type, message) les messages reçus du serveur peuvent être reçus en enregistrant un rappel addmessagehandler vous pouvez définir le type de message que vous souhaitez recevoir lors de l'enregistrement d'un rappel de message room send(type, message) interface utilisée pour transférer les messages vers le serveur vous pouvez définir le type de message à transférer recevoir un message voici un exemple d'utilisation de room addmessagehandler this multiplay roomjoined += (room room) => { // add server message listener type by "fire" room addmessagehandler("fire", (message string) => { // print server message console log(message); }); }; envoyer un message ce qui suit est un exemple d'utilisation de room send room send("message", "hello"); découvrez des exemples de différents types de messages de salle serveur import { sandbox, sandboxoptions, sandboxplayer } from 'zepeto multiplay'; interface messagemodel { str string, istest boolean } export default class extends sandbox { oncreate(options sandboxoptions) { this onmessage("action", (client sandboxplayer, message string) => { // triggers when 'action' message is sent // broadcast a message to all clients this broadcast("action taken", "an action has been taken!"); }); this onmessage(" ", (client sandboxplayer, type, message string) => { // triggers when any other type of message is sent, // excluding "action", which has its own specific handler defined above console log(`${client sessionid} sent ${type} ${message}`); }); this onmessage("echo", (client sandboxplayer, message number) => { // send message to sender client send("echo", `echo message ${message}`); }); this onmessage("fire", (client sandboxplayer, message string) => { // sends "fire" event to every client, except the one who triggered it this broadcast("fire", message, { except client }); }); this onmessage("position", (client sandboxplayer, message) => { console log(`\[${client sessionid}] position (${message x}, ${message y}, ${message z})`); }); // when custom object "messagemodel" type of message is sent this onmessage\<messagemodel>('channel object', (client sandboxplayer, message messagemodel) => { console log(`\[${client sessionid}] message type ${typeof (message)}, message ${message str}`); }); } } client import { room, roomdata } from 'zepeto multiplay'; import { zepetoscriptbehaviour } from 'zepeto script'; import { zepetoworldmultiplay } from 'zepeto world'; interface messagemodel { str string, istest boolean } export default class clientlogic extends zepetoscriptbehaviour { private multiplay zepetoworldmultiplay; start() { this multiplay = this gameobject getcomponent\<zepetoworldmultiplay>(); this multiplay roomjoined += (room room) => { // \[room send] // send "action" message to server room send("action", "action message"); // send "message" message to server room send("message", "hello"); // send "echo" message to server room send("echo", 1234); // send roomdata "posdata" message to server const posdata = new roomdata(); posdata add("x", this transform position x); posdata add("y", this transform position y); posdata add("z", this transform position z); room send("position", posdata getobject()); // send custom object "messagemodel" to server let message = {str 'test', istest true} as messagemodel; room send("channel object", message); // \[room addmessagehandler] // add server message listener type by "echo" room addmessagehandler("echo", (message string) => { // print server message console log(message); }); // add server message listener type by "action taken" room addmessagehandler("action taken", (message string) => { // print server message console log(message); }); // add server message listener type by "fire" room addmessagehandler("fire", (message string) => { // print server message console log(message); }); }; } }