Как узнать, является ли служебный путь недействительным или нет клиентом flesjs?

Клиент Feathersjs предоставляет хороший API для отправки сообщений на сервер как через покой, так и через сокет. Но я не знаю, как определить неправильный путь обслуживания на стороне клиента. Давайте посмотрим на код ниже в качестве примера:

const feathers = require('feathers-client')
const Primus = require('../public/dist/primus.js')
var primus = new Primus('http://localhost:3030');
var app = feathers()
  .configure(feathers.hooks())
  .configure(feathers.primus(primus));

var service = app.service('/test-servcie/ssss')

Последняя строка в приведенном выше коде включает неверный путь службы (/test-servcie/ssss). Неправильный путь службы означает, что на этом пути нет прослушивания службы. После этого я использую приведенный ниже код для отправки сообщения в службу:

service.create({}, {
  query: {
    hostname: 'localhost',
    port: 27017
  }
})

Поскольку служебный путь не существует, на стороне сервера ничего не происходит. Но я также не получил никаких неправильных сообщений на стороне клиента. Как я могу узнать, что путь службы недействителен на стороне клиента? Я хочу показать несколько сообщений об ошибках, если путь не существует.


person Joey Yi Zhao    schedule 27.12.2016    source источник


Ответы (1)


При использовании клиента REST вы получите ошибку 404 или 500, к сожалению, для библиотек websocket нет простого способа узнать, прослушивается ли отправляемое вами сообщение на сервере или нет, поэтому вы получите тайм-аут (по умолчанию 5 секунд) при попытке вызвать какой-либо сервисный метод в этом случае. Существует предложение по самоанализу службы, которое, тем не менее, появится в следующей версии.

person Daff    schedule 27.12.2016
comment
Дело в том, что я не получал сообщения об ошибке, когда сервер не работает. - person Joey Yi Zhao; 28.12.2016
comment
Как это будет сделано, будет зависеть от библиотеки, которую вы используете. Я не уверен, что для этого делает Socket.io. - person Daff; 29.12.2016
comment
Я использую библиотеку primus. Он не сообщает об ошибках. Не уверен, нужно ли мне что-нибудь настраивать. - person Joey Yi Zhao; 30.12.2016