2017-10-08 6 views
0

J'ai un serveur feathersjs en cours d'exécution auquel je peux me connecter depuis un client de navigation (en utilisant webpack). Maintenant, j'essaie de me connecter au même serveur à partir d'une application nodejs fonctionnant sur un Raspberry Pi3. Je ne vois aucune activité du serveur quand je fais une recherche. J'ai mis en place un enregistreur de hook pour créer sur ce service et il ne consigne rien. Je peux seulement supposer que le client ne se connecte jamais. Il n'y a AUCUN accrochage d'authentification sur ce service puisque je suis juste en développement, donc le module d'authentification n'est pas nécessaire.Feathersjs node socket client ne se connecte pas

Je peux cingler le serveur à partir du RPI et si je mets le serveur ip/port dans un navigateur sur le RPI je reçois ma page "un serveur de plumes utilise un client" pour la connexion réseau et la configuration IP le serveur est bien.

Toute aide sur la façon de suivre ce qui se passe. Sans aucun journal de connexion (sur le client) je ne peux pas dire ce qui se passe. Tout ce que je reçois est l'erreur de timeout du .catch.

Ci-dessous se trouve mon code client, le code client du client de navigation.

navigateur travail installation du client

import feathers from 'feathers' 
import hooks from 'feathers-hooks' 
import socketio from 'feathers-socketio' 
import auth from 'feathers-authentication-client' 
import io from 'socket.io-client' 

// const socket = io('http://localhost:3030', {transports: ['websocket']}) 
// const socket = io('http://192.168.43.114:3030', {transports: ['websocket']}) 
const socket = io('http://192.168.0.51:3030', { transports: ['websocket'] }) 

const api = feathers() 
    .configure(hooks()) 
    .configure(socketio(socket)) 

// .configure (auth ({stockage: window.localStorage}))

export default api 

ne fonctionne pas nodejs installation du client

const feathers = require('feathers/client'); 
const socketio = require('feathers-socketio/client'); 
const hooks = require('feathers-hooks'); 
// const errors = require('feathers-errors'); // An object with all of the custom error types. 
// const auth = require('feathers-authentication-client'); 

const io = require('socket.io-client/dist/socket.io'); 

const socket = io('http://192.168.0.51:3030', { transports: ['websocket'] }) 

const feathersClient = feathers() 
    .configure(hooks()) 
    .configure(socketio(socket)) 
//.configure(auth()) 

module.exports = feathersClient; 

l'application de noeud qui fait juste une trouvaille sur mon service.

const api = require('./api') 

const switches = api.service('switches') 

switches.find({ 
    paginate: false 
}) 
    .then((response) => { 
     console.log('loading all switch data', response.data) 
    }) 
    .catch((err) => { 
     console.log('error loading switch data', err) 
    }) 

l'erreur de la .catch

error loading switch data Error: Timeout of 5000ms exceeded calling switches::find 
    at Timeout._onTimeout (/opt/lighting-dev/node_modules/feathers-socket-commons/lib/client.js:87:25) 
    at ontimeout (timers.js:469:11) 
    at tryOnTimeout (timers.js:304:5) 
    at Timer.listOnTimeout (timers.js:264:5) 

Répondre

0

Les plumes sur Turns docs pour le client NPM/Node sont incorrectes. https://docs.feathersjs.com/api/client.html

l'exigent

const io = require('socket.io-client/dist/socket.io'); 

est pour les navigateurs ne

pour nodejs simplement utiliser le client de base

const io = require('socket.io-client); 

et il fonctionne.