Как использовать несколько веб-сокетов на одной странице? - PullRequest
0 голосов
/ 11 мая 2019

Я недавно пытался создать комментарий и удалить его через веб-сокеты, и преуспел в этом, но когда я использую два вместе, только один из них работает как удаление только комментария.
Я использовал несколько веб-сокетов дляделаем это:

    var socket_create = 'ws://' + window.location.host + '/create_comment'
    var socket_delete = 'ws://' + window.location.host + '/delete_comment'
    var socket1 = new ReconnectingWebSocket(socket_create)
    var socket2 = new ReconnectingWebSocket(socket_delete)

1 Ответ

0 голосов
/ 11 мая 2019

Ну, я думаю, использование двух WebSockets для этого является излишним.Вы можете использовать только один и реализовать create_comment и delete_comment на уровне сообщений.

Например:

var crud_socket = new ReconnectingWebSocket(socket_url);

crud_socket.onmessage = function(event) {
    // Assuming here you're using json.
    var data = JSON.parse(even.data)
    action = data.action;

    if (action === 'delete') {
        // delete here ...
    }
    if action === 'create' {
       // create here ...
    }
}

Помните, что вы используете Django ...

... так что вы можете следовать этому шаблону:

Использовать WebSockets для уведомления клиента (браузера) о каком-либо событии, которое только что произошло на сервере, объект был создан,объект был удален, какое-то задание выполнено и т. д. *

Если вы хотите выполнить действие CRUD, вы просто делаете AJAX-запрос к представлению Django.Итак, следуя этой схеме, создание сообщения должно выглядеть следующим образом:

  1. Ваш javascript загружается, и вы подключаетесь к веб-сокету.
  2. Вы нажимаете какую-то кнопку, которая запускает вызов AJAX дляПредставление Django.
  3. Такое представление Django получает данные, создает и сохраняет экземпляр Message (или любую модель, для которой вы реализовали представление сообщения).
  4. Когда сообщение создано,приемник сигналов (см. сигналов ) отправьте сообщение в веб-сокет.
  5. Ваш js-код получает это сообщение соответствующим образом.

Рекомендуется: Каналы Джанго

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...