首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用Primus中间件获取星火实例

如何利用Primus中间件获取星火实例
EN

Stack Overflow用户
提问于 2016-12-22 08:37:55
回答 1查看 225关注 0票数 0

我已经设置了一个Primus websocket服务如下所示。

代码语言:javascript
复制
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向用户发送响应消息。现在,我希望将其转换为在中间件中使用。代码如下:

代码语言:javascript
复制
primus.use('name', function (req, res, next) {
  doStuff();
});

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 14:25:15

自述文件对此略有含糊,但中间件只处理HTTP。

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

要实现你想要的,你必须创建一个插件。它并不比中间件复杂得多。

代码语言:javascript
复制
primus.plugin('herro', {
  server: function(primus, options) {
    primus.on('connection', function(spark) {
      spark.write('Herro Client, I am Server')
    })
  },
  client: function(primus, options) {}
})  

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41278898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档