Подтвердить что ты не робот

Может ли кто-нибудь объяснить мне о "неустойчивом" сообщении в socket.io/nodejs?

В новом socket.io v0.7 появилась новая функция "volatile message".

В "как использовать" они пишут так: (http://socket.io/#how-to-use)

Отправка изменчивых сообщений.

Иногда некоторые сообщения могут быть удалены. Скажем, у вас есть приложение, которое показывает в реальном времени > твиты для ключевого слова bieber.

Если какой-либо клиент не готов к получению сообщений (из-за сбоев в работе сети или других проблем) или потому, что он подключен через длительный опрос и находится в середине цикла ответа-запроса), если он не получает Все твиты, связанные с бибером вашего приложения > , не пострадают.

В этом случае вы можете отправить эти сообщения как изменчивые сообщения.

Как я считаю, volatile - это нечто непоследовательное, поэтому почему они сказали, что мы должны использовать изменчивое сообщение для типа сообщения, которое мы не должны пропустить? Что относительно сообщений по умолчанию? Что я должен сделать, чтобы убедиться, что сообщение придет к клиенту?

Кроме того, я также хочу спросить о xhr-multipart транспорте. Я не вижу его в списке транспорта в v0.7. Удалено ли оно?

4b9b3361

Ответ 1

Как обычно, socket.io отслеживает сообщения, которые он получает, и если я пропустил сообщение, он будет отправлен снова. Если вам не нужны эти накладные расходы (дополнительная работа), вы можете использовать изменчивое сообщение за счет, чтобы пользователь мог пропустить сообщение. Если вы также хотите получать полученные сообщения, чтобы использовать подтверждения (обратный вызов) = >

сервер:

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) {
  socket.on('ferret', function (name, fn) {
    fn('woot');
  });
});

клиент:

<script>
  var socket = io.connect(); // TIP: .connect with no args does auto-discovery
  socket.on('connection', function () {
    socket.emit('ferret', 'tobi', function (data) {
      console.log(data); // data will be 'woot'
    });
  });
</script>

Я также не могу найти xhr-multipart, но я думаю, если вы действительно хотите знать, что можете спросить Guille?