Node.js 如何通过socket.io发送POST或通过socket.io调用FeatherJS服务?

Node.js 如何通过socket.io发送POST或通过socket.io调用FeatherJS服务?,node.js,socket.io,feathersjs,Node.js,Socket.io,Feathersjs,我有一个服务(查找、获取、创建、删除),我想通过socket.io调用theme 例如: 用户在聊天中向其他用户写入消息。我希望数据不是通过请求发送,而是在套接字上实时发送,因为此时创建的是一个mongoose文档 可能吗?如果是,我怎么做 下面是我的代码片段:(服务器端) 好的,是和否。Socket.io中没有HTTP/REST样式的动词,但是由于您可以发送任何您想要的内容,因此您可以自己添加动词 此外,如果您希望以更结构化的方式构建实时API,那么您可能需要看看ActionHerp这样的框架

我有一个服务(查找、获取、创建、删除),我想通过socket.io调用theme

例如:

用户在聊天中向其他用户写入消息。我希望数据不是通过请求发送,而是在套接字上实时发送,因为此时创建的是一个mongoose文档

可能吗?如果是,我怎么做

下面是我的代码片段:(服务器端)


好的,是和否。Socket.io中没有HTTP/REST样式的动词,但是由于您可以发送任何您想要的内容,因此您可以自己添加动词

此外,如果您希望以更结构化的方式构建实时API,那么您可能需要看看ActionHerp这样的框架:

除了HTTP,它还可以使用WebSocket或TCP套接字作为底层传输,您可以创建自定义的“操作”,您可以根据自己的需要进行自定义

现在,如果您想使用Feathers而不想使用其他任何东西,那么您可以看看Feathers socketio:

它是Feathers Socket.io实时API提供程序,通过Socket.io实时API公开Feathers服务。它与Feathers 1.x和2.x兼容。您可以使用Socket.io与之交互。

如果您不使用Socket,您可以找到有关如何通过sockets调用服务的详细文档

/messages
服务的消息可以通过如下套接字直接创建:

 io.on('connect', function(socket){

   socket.on('message', function(id, msg){
   socket.to(id).emit('chat message', msg);

   // Socket call a create method of my service
   socket.post('/messages', data);

   });

}))
var socket = io();

socket.emit('messages::create', {
  "text": "I really have to iron"
}, (error, message) => {
  console.log('Todo created', message);
});
var socket = io();

socket.on('messages created', data => console.log('Someone created a new message', data);

socket.emit('messages::create', {
  "text": "I really have to iron"
}, (error, message) => {
  console.log('Todo created', message);
});
您还可以侦听任何创建的事件,如:

 io.on('connect', function(socket){

   socket.on('message', function(id, msg){
   socket.to(id).emit('chat message', msg);

   // Socket call a create method of my service
   socket.post('/messages', data);

   });

}))
var socket = io();

socket.emit('messages::create', {
  "text": "I really have to iron"
}, (error, message) => {
  console.log('Todo created', message);
});
var socket = io();

socket.on('messages created', data => console.log('Someone created a new message', data);

socket.emit('messages::create', {
  "text": "I really have to iron"
}, (error, message) => {
  console.log('Todo created', message);
});

我使用feathersjs,我不想添加任何其他内容。你可以说我有一个完整的项目。我只需要发送一个数据。我在我的项目中实现了一个socket.io。我是说别的。我更新了我的问题。