> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/contributor/contributor-pt/servico-social/ws.md).

# WebSocket

O Social Service é um servidor que gerencia amizades dentro do Decentraland. Utilizando a plataforma Matrix, ele serve como a fonte autorizada para lidar com atualizações de Friendships, como solicitações, aceitações, rejeições, cancelamentos e exclusões.

### Casos de uso

O Social Service aborda os seguintes casos de uso relacionados a amizades:

* Solicitar uma amizade
* Aceitar uma solicitação de amizade
* Rejeitar uma solicitação de amizade
* Cancelar uma solicitação de amizade
* Remover um amigo
* Listar todos os meus amigos
* Listar amigos em comum entre mim e outro usuário

### Contexto

Antes da introdução do Social Service, os dados de amizade eram armazenados e recuperados diretamente do Matrix. Isso levava a vários problemas com os fluxos de amizade e a informações pouco confiáveis. Além disso, implementar novos recursos era desafiador. Como o Matrix lida principalmente com recursos de chat, o Social Service atua como um proxy, aplicando a lógica de negócios necessária antes de interagir com o Matrix.

### Arquitetura

#### Histórico de versões

1. [Primeira versão](https://adr.decentraland.org/adr/ADR-113): Inicialmente, o Social Service era uma API REST que oferecia apenas endpoints GET para listar todos os amigos e conexões em comum. Ele não tinha recursos relacionados a atualizações ou ao envio de solicitações.
2. [Segunda versão](https://adr.decentraland.org/adr/ADR-189): Esta versão introduziu atualizações no fluxo de amizade. Para lidar com essas mudanças, foi implementado um servidor RPC via WebSocket. Esse servidor processa mensagens essenciais, mantendo conexões abertas com os clients para fornecer atualizações em tempo hábil. As conexões WebSocket também viabilizam recursos como [rastreamento de presença](https://github.com/decentraland/adr/blob/420e63926d20166ae832e3de62dd9e3f2370cd49/content/ADR-246-poc-presence.md) no Social Service.

#### URLs

**Domínio .zone**

Servidores do ambiente de desenvolvimento para testes e ao usar testnets.

* [Login com Matrix](https://social.decentraland.zone)
* [REST API](https://social.decentraland.zone)
* [API WebSocket](https://rpc-social.decentraland.zone)

**Domínio .org**

Servidores do ambiente de produção e ao usar mainnet.

* [Login com Matrix](https://social.decentraland.org)
* [REST API](https://social.decentraland.org)
* [API WebSocket](https://rpc-social.decentraland.org)

### Use o cliente JavaScript

Para usar o cliente JavaScript, consulte <https://github.com/decentraland/social-rpc-client-js#using-the-client>

### Implementações de clientes de referência

* [Cliente Matrix](https://github.com/decentraland/matrix-client)
* [Cliente JS](https://github.com/decentraland/social-rpc-client-js)
* [Cliente de referência Rust](https://github.com/decentraland/social-client)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/contributor/contributor-pt/servico-social/ws.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
