Alex McArrow, да, спасибо, в эту сторону тоже смотрю, пока не было времени протестировать. В случае чего отпишусь. На данный момент, для функционала сокетов беру https://assetstore.unity.com/packages/tools/networ... , он бесплатный и по нему много гайдов. Правда, ни в одном из них не встречается проблема, подобная моей
Не понял. зачем мне клиент-то на nodejs? Клиент на js написать - нет проблем. Вопрос заключается именно в связке Unity и Nodejs, а Unity, как я понимаю, это C#. Может, чего-то не знаю?
var shortID = require('shortid');
module.exports = class Player {
constructor() {
this.username = '';
this.id = shortID.generate();
}
};
Удаление закомментировал - ожидаемо, ничего не изменилось. Есть подозрение, что когда я отключаю один Unity, окошко второго в этот момент не активно - и поэтому ивент "теряется". Но если это так, непонятно, почему не теряются все остальные ивенты - тот же 'spawn' отрабатывает как только окно снова становится активным (или отрабатывает сразу, а потом происходит отрисовка - это не очень важно, главное, что ивент ловится).
Alex McArrow, вы, конечно, извините, но каким местом объявление массива и удаление элементов из него влияют на обработку событий клиент-сервер?)) у меня же строка socket.broadcast.emit('rdisconnected', player); идет сразу после консол.лога, то есть она должна отработать независимо от "пахнущего кода", что является просто указаниями, а не ошибками)
то есть моя проблематика в том, что один из подключенных клиентов отправляет событие disconnect на сервер, сервер это видит, о чем говорит "Player is disconnected" в консоли сервера, и отправляет событие 'rdisconnected' на клиенты, которые остались подключенными. И вот они, в свою очередь, просто никак не реагируют на это событие. Проблема в том, что я не спец по сетевым взаимодействиям, и не знаю, можно ли проверить, доходит ли вообще событие до клиента. В принципе, никакого middleware я не использую, "затеряться" событие нигде не должно было. Но вот на серве оно было, и вот на клиенте его нет. Но за попытки помочь спасибо естественно)
Спасибо за попытку, но нет, ни io.emit, ни io.sockets.emit не отрабатывает.. даже если тупым перебором массива sockets вызывать у каждого - молчание в эфире
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.