簡體   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