Navigation

  • Recent
  • Tags
  • Users
  • Search
  • Login
Colyseus
  • Login
  • Search
  • Recent
  • Tags
  • Users

Documentation GitHub

We're migrating to GitHub Discussions. This forum does not accept new registrations since April 6, 2023.
  1. Home
  2. lyh1091106900
lyh1091106900

lyh1091106900

@lyh1091106900

Chat Follow Unfollow
1
Reputation
12
Posts
1.0k
Profile views
0
Followers
0
Following
Joined 25 Jan 2022, 16:21 Last Online 29 Nov 2022, 09:09

  • Profile
  • More
    • Continue chat with lyh1091106900
    • Flag Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups
lyh1091106900 Follow

Posts made by lyh1091106900

RE: 关于本地环境下缩放单元测试可能遇到的席位过期问题

感谢教程,有所帮助

posted in 中文 • 12 Feb 2022, 07:52
broadcast Mechanism Question

All I know is in colyseus sever different player can live in different proccessId sever,with redispresence they can communicate。when I read soucecode in Room.ts about broadcast,I find it just sent message to clients of Room instance,I think Room instance is totally Independent of other proccessId sever。so it is confuse for me that without ipc call how can I call make a broadcast to send mssage to everyone.
the code follow :

broadcast(typeOrSchema, messageOrOptions, options) {
    const isSchema = (typeof (typeOrSchema) === 'object');
    const opts = ((isSchema) ? messageOrOptions : options);
    if (opts && opts.afterNextPatch) {
        delete opts.afterNextPatch;
        this._afterNextPatchQueue.push(['broadcast', arguments]);
        return;
    }
    if (isSchema) {
        this.broadcastMessageSchema(typeOrSchema, opts);
    }
    else {
        this.broadcastMessageType(typeOrSchema, messageOrOptions, opts);
    }
}

broadcastMessageSchema(message, options = {}) {
    const encodedMessage = Protocol.getMessageBytes[Protocol.Protocol.ROOM_DATA_SCHEMA](message);
    let numClients = this.clients.length;
    while (numClients--) {
        const client = this.clients[numClients];
        if (options.except !== client) {
            client.enqueueRaw(encodedMessage);
        }
    }
}
broadcastMessageType(type, message, options = {}) {
    const encodedMessage = Protocol.getMessageBytes[Protocol.Protocol.ROOM_DATA](type, message);
    let numClients = this.clients.length;
    while (numClients--) {
        const client = this.clients[numClients];
        if (options.except !== client) {
            client.enqueueRaw(encodedMessage);
        }
    }
}
posted in General Discussion • 12 Feb 2022, 03:03

© 2023 Endel Dreyer