Size: a a a

2019 March 29

ŹR

Źmićer Rubinštejn in pro.elixir
Так что все не просто в этом мире)
источник

Е

Евгений in pro.elixir
тоже верно :)
источник

jc

john conor  in pro.elixir
дык а в чем проблема? пусть пересылает
источник

Е

Евгений in pro.elixir
ни в чем, все уже решено, всем спасибо :)
источник

AA

Alexander Andreev in pro.elixir
в прододжение темы с сокетами. хочу понять как устроено внтури. по идее в ОС создается внутренний сокет для каждого подключившегося клиента? вроде он tcp
источник

AA

Alexander Andreev in pro.elixir
но в самой структуре Phoenix.Socket есть такие поля
Socket fields
:id - The string id of the socket
:assigns - The map of socket assigns, default: %{}
:channel - The current channel module
:channel_pid - The channel pid
:endpoint - The endpoint module where this socket originated, for example: MyApp.Endpoint
:handler - The socket module where this socket originated, for example: MyApp.UserSocket
:joined - If the socket has effectively joined the channel
:join_ref - The ref sent by the client when joining
:ref - The latest ref sent by the client
:pubsub_server - The registered name of the socket’s pubsub server
:topic - The string topic, for example "room:123"
:transport - An identifier for the transport, used for logging
:transport_pid - The pid of the socket’s transport process
:serializer - The serializer for socket messages


то есть если пользователь подпишется на насколько топиков, то для него будет создано несколько Phoenix.Socket. но вот что будет происходить на уровне ОС, так же будет открыто несколько сокетов? но ведь достаточно и одного. или у структуры Phoenix.Socket есть какая то связь с открытым системным сокетом? но я до нее так и не добрался
источник

ŹR

Źmićer Rubinštejn in pro.elixir
transport это сокет ос
источник

AA

Alexander Andreev in pro.elixir
Źmićer Rubinštejn
transport это сокет ос
спасибо
источник

AA

Alexander Andreev in pro.elixir
а что будет в этом случаее стейтфул генсервер? то есть если я подпишусь на 3 топика в одном канале, то какие процессы будут созданы? канал или Phoenix.Socket?
источник

AA

Alexander Andreev in pro.elixir
о, похоже это будет все такие канал. но внутри у себя он будет хранить Phoenix.Socket?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
1 канал это один генсервер
источник

ŹR

Źmićer Rubinštejn in pro.elixir
он будет получать в handle_info все пабасбы
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А с другой стороны он будет получать все из реального сокета
источник

ŹR

Źmićer Rubinštejn in pro.elixir
И дифференциировать их по handle_in handle_out
источник

AA

Alexander Andreev in pro.elixir
Źmićer Rubinštejn
он будет получать в handle_info все пабасбы
то есть если к одному каналу подключаться 1к пользователей. то это все равно будет 1 генсервер? и он один будет обрабатывать все сообщения?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Źmićer Rubinštejn
transport это сокет ос
Обычно это сам процесс Phoenix.Websocket
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Alexander Andreev
то есть если к одному каналу подключаться 1к пользователей. то это все равно будет 1 генсервер? и он один будет обрабатывать все сообщения?
На связку канал-сокет создается генсервер
источник

ŹR

Źmićer Rubinštejn in pro.elixir
У одного пользователя может быть много каналов
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А может быть один
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Но одного канала у двух ползователей быть не может
источник