Как включить только часть API для Sockend на Cote? - PullRequest
0 голосов
/ 21 сентября 2018

В документации показано, что когда пользователь создает соединение с сокетом, он может создать пространство имен:

let socketNamespaced = io.connect('/rnd');

для sockend.js инициализации сервера нет упоминания о пространстве имен.

const sockend = new cote.Sockend(io, {
    name: 'Sockend',
    // key: 'a certain key'
});

Насколько я понимаю, клиент выбирает, к какому пространству имен подключаться.Теперь, чтобы избежать проблем с безопасностью, есть ли способ применить пространство имен сокетов на стороне сервера.

Например,

const sockend = new cote.Sockend(io, {
    name: 'Sockend',
    namespace: '/cmd'
});

Таким образом, только это пространство имен будет доступно сокету, и там будетне будет никаких шансов изменить пространство имен клиента и открыть весь API для сокета.

1 Ответ

0 голосов
/ 24 сентября 2018

Вы определяете пространство имен в ответчике.Используя свойство respondsTo, вы затем определяете, какие типы доступны публично Sockend:

var cmdResponder = new cote.Responder({
  name: 'CMD Responder',
  namespace: 'cmd',
  respondsTo: [ 'hello' ]
})
cmdResponder.on('hello', async(req) => { return 'hi' })

Без установленного в ответчиках respondsTo Sockend не предоставляет никаких типов самостоятельно.

В этом примерепространство имен /cmd будет только отвечать на 'привет'.

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