有关express.js和deepstream的任何教程一起工作

时间:2016-10-11 23:15:28

标签: express deepstream.io

所有

正如标题所说,我对Express和Deepstream很新,我想知道如何让它们一起工作(或者它们必须单独工作?)?

在Deepstream指南部分(https://deepstream.io/tutorials/integrations/) 它仅提供了如何连接前端和持久层,但没有提供太多关于如何与其他REST API服务协同工作(只有一小部分:https://deepstream.io/tutorials/integrations/other-http/,但没有太多用户案例)

任何教程/示例(如授权聊天和朋友聊天列表这样的简单案例)?

由于

1 个答案:

答案 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')++ );

我希望有所帮助!