Как получить socket в методе joinRoom (adonis.js)?

Мне нужно получить socket пользователя в методе joinRoom. Я уже перепробывал всё: и убирал генераторы, и запускал конструктор в методе(бред, но решил попробывать), вот уже взял код из документации, но он всё равно не работает. Ребят, кто с этим работал? Как можно получить хотябы сокет, желательно все св-ва определяемые в конструкторе.

Код App/Ws/Controllers/ChatController.js
'use strict'

class ChatController {
  constructor (socket) {
    this.socket = socket
  }

  * leaveRoom (room) {
    // Do cleanup if required
  }

  * joinRoom (room) {
    this.room = room
    this.socket.emit('server:message', {message: 'New connection!'})
  }
}

module.exports = ChatController


Код App/Ws/Controllers/ChatController.js
'use strict'

const Ws = use('Ws')

Ws.channel('chat', 'ChatController')
  .middleware('auth')
  • Вопрос задан
  • 363 просмотра
Решения вопроса 1
Dragomeat
@Dragomeat Автор вопроса
Сам по исходникам нашёл ответ
* joinRoom (room, payload, socket) {     
      socket.emit('server:message', {message: 'New connection!'})
  }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@emp1re
var chat = io.of('/chat') .on('connection', roomConnect); // nameSpace

function roomConnect(socket){  // heandler
 socket.join('room', function(){
 chat.to('room').emit('message', 'somemessage'); // message to room
}) // join in room

}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы