[英]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.