繁体   English   中英

如何使用Primus中间件获取Spark实例

[英]How to get spark instance on using Primus middleware

我已经如下设置了Primus websocket服务。

http = require('http');
server = http.createServer();

Primus = require('primus');
primus = new Primus(server, {
  transformer: 'websockets',
  pathname: 'ws'
});

primus.on('connection', function connection(spark) {
  console.log("client has connected");
  spark.write("Herro Client, I am Server");
  spark.on('data', function(data) {
    console.log('PRINTED FROM SERVER:', data);
    spark.write('receive '+data)
  });
  spark.on('error', function(data) {
    console.log('PRINTED FROM SERVER:', data);
    spark.write('receive '+data)
  });
});



server.listen(5431);
console.log("Server has started listening");

工作正常。 在上面的代码中,我使用spark.write向用户发送响应消息。 现在,我想将其转换为可在中间件中使用。 代码如下:

primus.use('name', function (req, res, next) {
  doStuff();
});

在doStuff()方法中,如何获取spark实例以将消息发送回客户端?

自述文件对此有些含糊,但中间件仅处理HTTP请求。

Primus有两种扩展功能的方式。 我们有插件,但也支持中间件。 这些之间有一个重要的区别。 中间件层允许您在传入的请求传递到转换器之前对其进行修改。 插件使您可以修改火花并与之交互。 中间件层仅针对Primus处理的请求运行。

要实现您想要的功能,您必须创建一个插件。 它没有中间件那么复杂。

primus.plugin('herro', {
  server: function(primus, options) {
    primus.on('connection', function(spark) {
      spark.write('Herro Client, I am Server')
    })
  },
  client: function(primus, options) {}
})  

有关更多信息,请参见自述文件的“ 插件”部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM