Mixam19
то ли я сонный, то ли мы сейчас вообще о разных вещах говорим )
Mixam19
реалтайм - это когда ты приконектился к сокету и дальше слухаешь его и шлёшь туда месаги
Mixam19
и всё обрабатываешь здесь и сейчас
Denis
А ты делал?
Mixam19
на бэкенде - да
Mixam19
на фронте считай тоже
Mixam19
но там я пользовал готовую обертку
Denis
Покажи отправку
Mixam19
firebase который )
Mixam19
да пожалуйста, сейчас пошукаю )
Denis
Ааа. Да при чем тут это? Это событийная БД. Я тебе про пушер говорю или подобный бродкаст. Чето я не помню там отправки
Mixam19
App.chatChannel = App.cable.subscriptions.create { channel: "ChatChannel", room: "Best Room" }, received: (data) -> # data => { sent_by: "Paul", body: "This is a cool chat app." } App.chatChannel.send({ sent_by: "Paul", body: "This is a cool chat app." })
Mixam19
вот пример взаимодействия с рельсовым ActionCable
Mixam19
здесь мы уже приконектились к сокету
Mixam19
создаем подписку (что тоже по факту является отправкой сообщения в сокет)
Mixam19
и ниже шлём кастомное сообщение
Mixam19
как это сервер распарсит - это уже вопрос к бэкенду )
Denis
Надо позырить. Я аяксом слал.
Denis
Там только слушал. Но у меня и не чат был ))
Denis
На сервере че, контроллер писать?
Mixam19
что-то вроде контроллера
Mixam19
по принципу работы похоже очень
Mixam19
но это всё от реализации зависит
Mixam19
в сокет по факту можно заслать что угодно
Mixam19
любую стрингу
Mixam19
просто есть несколько принятых стандартов по которым пишут уже более высокоуровневую фигню
Mixam19
а следовательно, раз можно заслать что угодно, то и обработать можно как душе заблагорассудится
Mixam19
есть вроде бы варианты, как сделать симплексный сокет, но я слабо представляю профиты от этого
Denis
А авторизоваться можно?
Mixam19
да, на коннекте к сокету засылать можно с header-ами и params-ами
Mixam19
WebSocket работает поверх протокола HTTP
Mixam19
я проверял access token на коннекте и далее уже от этого плясал
Denis
А может сэнд ответ непосредственный получить?
Denis
Саксесс был или нет
Mixam19
только если вводить идентификатор чтобы понять, к какому сообщению какое относится
Mixam19
но вообще как обычно реализуют
Mixam19
у нас на рельсе
Mixam19
ты засылаешь в сокет события с фронта только на subscribe
Mixam19
далее ты шлёшь обычные запросы, а их результаты всё-равно прилетят в сокет
Mixam19
ивэнтами
Mixam19
но никто не мешает меняться сообщениями и чисто в сокете
Mixam19
создаешь уникальный идентификатор сообщения
Mixam19
и фильтруешь сообщения с тем же идентификатором
Mixam19
думая о них как о респонсе
Mixam19
если не ошибаюсь, socket.io полностью в сокете сообщениями меняется
Denis
Ну а приватные каналы?
Mixam19
но это не точно, давно глядел
Denis
Я приват юзал
Denis
Там еще групповые есть
ℝei
Кто нибудь делал copy to clipboard ? без всяких либ и проч. не из input'ов и тд. а просто из переменной
Denis
Я
Mixam19
что значит приватные? юзер конектится к сокету и подписывается на каналы. в момент обработки подписки ты можешь решить, пускать человека на канал или задеклайнить
ℝei
над кароч по @click скопировать переменную в клипборд
ℝei
у кого
Denis
у кого
Ну где клон - кнопа
Denis
Denis
Ща
Denis
Mixam19
Подписывается на канал только для него
ну, в момент подписки на канал ты проверяешь, может ли данный юзер на него подписаться
Mixam19
всё же изи )
ℝei
чет непойму зачем мне это
Mixam19
чет непойму зачем мне это
смотришь исходники страницы и как там реализован копипаст
ℝei
а лол
ℝei
да это ясно как когда текст в input теге
ℝei
мне надо из переменной которая нигде не отображается.
Mixam19
ну это хак
Mixam19
наверняка можно проще
ℝei
делать нех чтоли. это колеса какиет)
Mixam19
так а в чем противоречие? ты пишешься на канал App.User.#{user-id}
Mixam19
на бэке проверяешь - этот это юзер чи к чужому пытается прилипнуть
Mixam19
и в зависимости от этого либо подписываешь
Mixam19
либо посылаешь в пешее дальнее
Illya
и из хиддена помойму тоже не выйдет
Illya
document.execCommand('copy') копирует только текущее выделение