【问题标题】:How can to send POST via socket.io or call a feathersjs service via socket.io?如何通过 socket.io 发送 POST 或通过 socket.io 调用 feathersjs 服务?
【发布时间】:2017-03-04 03:09:48
【问题描述】:

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

例如:

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

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

下面是我的 sn-p 代码:(服务器端)

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

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

}))

http://localhost:3030/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);

   });

}))

【问题讨论】:

    标签: node.js socket.io feathersjs


    【解决方案1】:

    如果你没有使用Feathers as the client,你可以找到关于如何通过套接字调用服务的详细文档here

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

    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);
    });
    

    【讨论】:

      【解决方案2】:

      嗯,是的,也不是。 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 与之交互。

      【讨论】:

      • 我使用了一个feathersjs,我不想添加任何其他东西。你可以说我有一个完整的项目。我只需要发送一个数据。
      • 我的项目中实现了一个 socket.io。我的意思是别的。我更新了我的问题。
      猜你喜欢
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      • 2020-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      相关资源
      最近更新 更多