BUAT DUNIAMU
Bermain Ganda
Proses koneksi ruangan
9mnt
proses koneksi ruangan zepeto multiplay menyediakan antarmuka untuk mengirim/menerima data antara klien dan server (room) sehingga pesan dapat dikirim ke masing masing server klien atau ke semua klien jenis pesan pengiriman mendukung jenis primitive, schema, custom(object) server api server api menyediakan method berikut api deskripsi onmessage(type, callback) server zepeto multiplay dapat mendaftarkan callback yang akan digunakan untuk mengelola jenis pesan yang dikirim oleh klien jenis teks dapat didefinisikan sebagai string dan angka client send(type, message) fungsi untuk mengirim pesan ke klien tertentu broadcast(type, message) fungsi untuk mengirim pesan ke semua klien yang terhubung ke room anda dapat mengirim ke semua klien yang terhubung, atau anda juga dapat mengecualikan klien tertentu dari daftar jika anda ingin mengetahui multiplay server api, silakan merujuk ke dokumen berikut 📘 silakan merujuk ke panduan berikut \[ zepeto multiplay(server) api ] menerima pesan berikut adalah contoh penggunaan 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}`); }); } mengirim pesan berikut adalah contoh penggunaan client send oncreate() { this onmessage("echo", (client sandboxplayer, message string) => { // send messge to sender client send("echo", `echo message ${message}`); }); } berikut adalah contoh penggunaan broadcast ▼ contoh pengiriman pesan ke semua klien oncreate() { this onmessage("action", (client sandboxplayer, message string) => { // broadcast a message to all clients this broadcast("action taken", "an action has been taken!"); }); } ▼ contoh pengiriman pesan dengan pengecualian klien tertentu 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 }); }); } klien api client api menyediakan method berikut room addmessagehandler(type, message) pesan yang diterima dari server dapat diterima dengan mendaftarkan panggilan balik addmessagehandler anda dapat menentukan jenis pesan yang ingin anda terima saat mendaftarkan panggilan balik pesan room send(type, message) antarmuka yang digunakan saat mengirim pesan ke server anda dapat menentukan jenis pesan yang akan dikirim menerima pesan berikut adalah contoh penggunaan 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); }); }; mengirim pesan berikut adalah contoh penggunaan room send room send("message", "hello"); lihat contoh beragam jenis room message server 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}`); }); } } klien 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); }); }; } }