2017-03-03 55 views
0

我有一个服务(发现,获取,创建,删除),我想通过socket.io如何通过socket.io发送POST或通过socket.io调用feathersjs服务?

调用主题例如:

用户聊天写一条消息给其他用户。我想数据不是通过请求发送,而是实时在套接字上,因为在这一刻创建的是猫鼬的文件。

它是否可行?如果是,我该怎么办?

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

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

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

})) 

http://localhost:3030/messages < - REST API的URL创建与猫鼬的文档。在链接上发送数据之后正在创建文档。我需要通过socket.io创建一个文档,而不是请求。

我的意思是这样的:

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

    }); 

})) 

回答

1

如果您不使用Feathers as the client,您可以找到有关如何通过插座呼叫服务的详细文档here

/messages服务A的消息可以直接通过插座来创建这样的:

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

就是这样!我必须阅读它。谢谢@Daff – SeaDog

0

好,yes和no。在Socket.io中没有HTTP/REST风格的动词,但既然你可以发送任何你想要的东西,你可以自己添加动词。

此外,如果你想拥有构建实时API的更结构化的方式,那么你可能想看看框架,如ActionHerp:

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

,如果你想用羽毛和你不想使用别的东西,那么你可以看看羽毛,socketio:

这是一个羽毛Socket.io实时API提供程序,通过Socket.io实时API公开Feathers服务。它与羽毛1.x和2.x兼容。你可以使用Socket.io与它进行交互。

+0

我使用feathersjs,我不想添加任何其他东西。你可以说我有一个完整的项目。我只需要发送一个数据。 – SeaDog

+0

@SeaDog我明白了。在这种情况下,看到我更新的答案。 – rsp

+0

我在我的项目中实现了一个socket.io。我的意思是别的。我更新了我的问题。 – SeaDog