mirror of
https://github.com/jech/galene.git
synced 2024-12-22 15:25:48 +01:00
Implement 'noecho' field in client messages.
This commit is contained in:
parent
9f67a03fdb
commit
63e2b5a4c4
3 changed files with 15 additions and 3 deletions
|
@ -233,6 +233,7 @@ A chat message may be sent using a `chat` message.
|
|||
username: username,
|
||||
dest: dest-id,
|
||||
privileged: boolean,
|
||||
noecho: false,
|
||||
value: message
|
||||
}
|
||||
```
|
||||
|
@ -242,7 +243,9 @@ the clients in the group. If `source` is empty, then the message was
|
|||
originated by the server. The message is forwarded by the server without
|
||||
interpretation, the server only validates that the `source` and `username`
|
||||
fields are authentic. The field `privileged` is set to true by the server
|
||||
if the message was originated by a client with the `op` permission.
|
||||
if the message was originated by a client with the `op` permission. The
|
||||
field `noecho` is set by the client if it doesn't wish to receive a copy
|
||||
of its own message.
|
||||
|
||||
A user message is similar to a chat message, but is not conserved in the
|
||||
chat history, and is not expected to contain user-visible content.
|
||||
|
|
|
@ -173,6 +173,7 @@ type clientMessage struct {
|
|||
Permissions *group.ClientPermissions `json:"permissions,omitempty"`
|
||||
Group string `json:"group,omitempty"`
|
||||
Value interface{} `json:"value,omitempty"`
|
||||
NoEcho bool `json:"noecho,omitempty"`
|
||||
Time int64 `json:"time,omitempty"`
|
||||
SDP string `json:"sdp,omitempty"`
|
||||
Candidate *webrtc.ICECandidateInit `json:"candidate,omitempty"`
|
||||
|
@ -1209,10 +1210,15 @@ func handleClientMessage(c *webClient, m clientMessage) error {
|
|||
Privileged: c.permissions.Op,
|
||||
Time: tm,
|
||||
Kind: m.Kind,
|
||||
NoEcho: m.NoEcho,
|
||||
Value: m.Value,
|
||||
}
|
||||
if m.Dest == "" {
|
||||
err := broadcast(g.GetClients(nil), mm)
|
||||
var except group.Client
|
||||
if m.NoEcho {
|
||||
except = c
|
||||
}
|
||||
err := broadcast(g.GetClients(except), mm)
|
||||
if err != nil {
|
||||
log.Printf("broadcast(chat): %v", err)
|
||||
}
|
||||
|
|
|
@ -176,6 +176,7 @@ function ServerConnection() {
|
|||
* @property {Object<string,boolean>} [permissions]
|
||||
* @property {string} [group]
|
||||
* @property {unknown} [value]
|
||||
* @property {boolean} [noecho]
|
||||
* @property {string} [sdp]
|
||||
* @property {RTCIceCandidate} [candidate]
|
||||
* @property {Object<string,string>} [labels]
|
||||
|
@ -477,8 +478,9 @@ ServerConnection.prototype.userAction = function(kind, dest, value) {
|
|||
* @param {string} kind - The kind of application-specific message.
|
||||
* @param {string} dest - The id to send the message to, empty for broadcast.
|
||||
* @param {string} [value] - An optional parameter.
|
||||
* @param {boolean} [noecho] - If set, don't echo back the message to the sender.
|
||||
*/
|
||||
ServerConnection.prototype.userMessage = function(kind, dest, value) {
|
||||
ServerConnection.prototype.userMessage = function(kind, dest, value, noecho) {
|
||||
this.send({
|
||||
type: 'usermessage',
|
||||
source: this.id,
|
||||
|
@ -486,6 +488,7 @@ ServerConnection.prototype.userMessage = function(kind, dest, value) {
|
|||
username: this.username,
|
||||
kind: kind,
|
||||
value: value,
|
||||
noecho: noecho,
|
||||
});
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue