# Magic Socket

**Gerçek zamanlı kanallar, Magic uygulamanızda hazır.**

Magic uygulamaları için `Echo` facade'i üzerinden gerçek zamanlı broadcasting: Reverb driver'ı ve null driver ile. Reverb ya da başka bir Pusher-protocol sunucusu için tasarlandı; API'si Laravel Echo kullananlara tanıdık gelir.

## Tek facade. Her kanal.

Public, private ve presence kanallarını dinlemek için `Echo`'yu çağırın. Bağlantıyı `broadcasting.default` ile seçtiğiniz driver yönetir.

### Üç kanal türü

Public için `Echo.channel(name)`, private için `Echo.private(name)` (auth `/broadcasting/auth` üzerinden), presence için `Echo.join(name)`; `members`, `onJoin`, `onLeave`.

[Daha fazla Üç kanal türü hakkında](https://anilcancakir.com/magic/docs/socket/basics/channels.md)

### Kendiliğinden yeniden bağlanır

Reverb driver'ı exponential backoff ve jitter ile yeniden bağlanır, her handshake sonrası tüm kanallara tekrar abone olur; kopan bağlantı uygulama kodu olmadan düzelir.

[Daha fazla Kendiliğinden yeniden bağlanır hakkında](https://anilcancakir.com/magic/docs/socket/guides/connection.md)

### Driver seçimi

`broadcasting.default`, Reverb veya Pusher-protocol sunucusu için `reverb`'ü seçer. Varsayılan `null` driver hiçbir şey yapmaz; socket sunucusu olmayan uygulama aynen çalışır.

[Daha fazla Driver seçimi hakkında](https://anilcancakir.com/magic/docs/socket/basics/configuration.md)

### Göndereni atla

Bir socket bağlıyken ve `NetworkServiceProvider` kayıtlıyken bir HTTP interceptor her isteğe `X-Socket-ID` ekler; böylece sunucunun `toOthers()` çağrısı göndereni atlar. `Echo.socketId` bu değeri okur.

[Daha fazla Göndereni atla hakkında](https://anilcancakir.com/magic/docs/socket/basics/configuration.md)

### Controller'da dinleyin

`ListensToBroadcasts` mixin'i, bir `MagicController`'ın private kanalı dinlemesini ve dinleyicilerin controller kapanınca temizlenmesini sağlar (`BroadcastListeners.channel`).

[Daha fazla Controller'da dinleyin hakkında](https://anilcancakir.com/magic/docs/socket/basics/listeners.md)

### Socket olmadan test

`Echo.fake()`, gerçek yöneticinin yerine `FakeBroadcastManager` koyar; test socket olmadan abonelikleri ve dinleyicileri doğrular, `Echo.unfake()` eski haline döndürür.

[Daha fazla Socket olmadan test hakkında](https://anilcancakir.com/magic/docs/socket/guides/testing.md)

## Saniyeler içinde ekleyin

```bash
flutter pub add magic_socket
```

Ya da `pubspec.yaml` dosyasına ekleyin:

```yaml
dependencies:
  magic_socket: ^1.0.1
```

Ya da yapay zeka ajanınıza şu istemi verin:

```text
https://anilcancakir.com/magic/docs/socket/llms.txt adresini oku ve Magic Socket paketini bu projeye kur.
```

## Dokümanlar

### Getting Started

- [Installation](https://anilcancakir.com/magic/docs/socket/getting-started/installation.md)

### The Basics

- [Configuration](https://anilcancakir.com/magic/docs/socket/basics/configuration.md)
- [Channels](https://anilcancakir.com/magic/docs/socket/basics/channels.md)
- [Listeners](https://anilcancakir.com/magic/docs/socket/basics/listeners.md)

### Guides

- [Connection](https://anilcancakir.com/magic/docs/socket/guides/connection.md)
- [Extending](https://anilcancakir.com/magic/docs/socket/guides/extending.md)
- [Testing](https://anilcancakir.com/magic/docs/socket/guides/testing.md)
