Feathers最显着的特点之一是它也可以用作客户端。与大多数其他框架相比,它不是一个单独的库; 相反,您可以获得与客户端和服务器完全相同的功能。这意味着您可以使用服务和挂钩并配置插件。默认情况下,Feathers客户端会自动创建与Feathers服务器通信的服务。
为了连接到羽毛服务器,客户端创建服务使用一个REST或WebSocket连接中继方法调用,并允许监听事件在服务器上。这意味着Feathers应用程序实例的使用方式与服务器上的完全相同。
与客户最相关的模块是:
- @feathersjs/feathers初始化一个新的Feathers 应用程序
- @ feathersjs/rest-client通过REST HTTP连接服务。
- @ feathersjs/socketio-client通过Socket.io连接服务。
- @ feathersjs/primus-client通过Primus连接服务。
- @ feathersjs/authentication-client用于验证客户端
重要提示:您不必在客户端上使用Feathers连接到Feathers服务器。上面的客户端章节还描述了如何在客户端没有Feathers的情况下直接使用REST HTTP,Socket.io或Primus连接。有关验证的详细信息,请参阅验证客户端章节。
Node客户端
要连接到NodeJS中的Feathers服务器,请安装所需的客户端连接库(此处socket.io-client),Feathers核心库以及特定于连接的库:
npm install @feathersjs/feathers @feathersjs/socketio-client socket.io-client --save
然后像这样初始化:
const io = require('socket.io-client');
const feathers = require('@feathersjs/feathers');
const socketio = require('@feathersjs/socketio-client');
const socket = io('http://api.my-feathers-server.com');
const client = feathers();
client.configure(socketio(socket));
const messageService = client.service('messages');
messageService.on('created', message => console.log('Created a message', message));
// Use the messages service from the server
messageService.create({
text: 'Message from client'
});
React Native 客户端
React Native使用与Node客户端相同。将所需的软件包安装到React Native项目中。
$ npm install @feathersjs/feathers @feathersjs/socketio-client socket.io-client
import io from 'socket.io-client';
import feathers from '@feathersjs/feathers';
import socketio from '@feathersjs/socketio-client';
const socket = io('http://api.my-feathers-server.com', {
transports: ['websocket'],
forceNew: true
});
const client = feathers();
client.configure(socketio(socket));
const messageService = client.service('messages');
messageService.on('created', message => console.log('Created a message', message));
// Use the messages service from the server
messageService.create({
text: 'Message from client'
});
由于本机作出反应的Android不处理超时超过一分钟考虑设置较低值pingInterval
和pingTimeout
的feathers-socketio
服务器上。这将停止与此问题相关的警告。例如:
const app = feathers();
const socketio = require('feathers-socketio');
app.configure(socketio({
pingInterval: 10000,
pingTimeout: 50000
}));