所有
正如标题所说,我对Express和Deepstream很新,我想知道如何让它们一起工作(或者它们必须单独工作?)?
在Deepstream指南部分(https://deepstream.io/tutorials/integrations/) 它仅提供了如何连接前端和持久层,但没有提供太多关于如何与其他REST API服务协同工作(只有一小部分:https://deepstream.io/tutorials/integrations/other-http/,但没有太多用户案例)
任何教程/示例(如授权聊天和朋友聊天列表这样的简单案例)?
由于
答案 0 :(得分:3)
Deepstream目前可以通过http服务器初始化其websocket服务器。然而,这种行为在不久的将来会被弃用,因为我们希望通过将其更多地移动到c ++空间来进一步优化deepstream.io,这意味着http服务器将能够处理更多并发连接,但代价是不可配置
在大多数情况下,您可以使用deepstream客户端构建整个应用程序。数据同步,事件和rpcs的组合意味着只要您不考虑执行二进制上传/传输等操作,您就可以从选择最佳工具来完成任务中受益。
例如,您可以在需要经典请求/响应原子操作时使用RPC:
ds.rpc.provide( 'add-numbers', function( data, response ) {
var result = data.reduce(function(previousValue, currentValue) {
return previousValue + currentValue;
})
response.send( result )
} )
ds.rpc.make( 'add-numbers', [ 1, 3 ], function( err, data ) {
console.log( 'result: ', data )
} )
类似于表达:
app.post( '/add-two', function( req, res ) {
var result = req.body.data.reduce(function(previousValue, currentValue) {
return previousValue + currentValue;
})
res.send( result )
} )
除了deepstream还会为您管理服务发现和负载平衡等概念,甚至允许客户有机会成为端点(如果需要)。
或使用事件:
ds.event.emit( 'score-changed', score++ )
ds.event.subscribe( 'score-changed', function( newScore ) {
console.log( `The score changed on: ${newScore}` )
} )
或建模应用程序数据并使用记录在所有客户端之间进行同步:
var record = ds.record.getRecord( 'playerA' )
record.subscribe( 'score', function( newScore ) {
console.log( `Player A score has changed to: ${newScore}` );
} );
record.set( 'score', record.get('score')++ );
我希望有所帮助!