簡體   English   中英

如何在node.js中沒有任何請求的情況下獲得快速會話值

[英]how to get express-session value without any request in node.js

我正在為node.js,MySql和POSTMAN(Crome APP)的乘車跟蹤API制作Web服務

在此Web服務中,我需要使用TCP套接字,所以我使用了簡單的“ net”包而不是“ socket.io”包,並且我需要在套接字中添加特定的行駛數據,因此我使用了“ express-session”包

首先我設置了乘車ID會話,然后嘗試在套接字中運行它,但是express-session的值在沒有任何請求的情況下無法獲取,因此我無法在MySql查詢中使用它

在這里,我添加了此過程的一些相關代碼。

app.js像下面這樣

var trackride = require('./routes/trackride');

var app = express();

var net = require('net');
var sockets = [];

var session = require('express-session');

var svr = net.createServer(function(sock) {

  console.log('Connected: ' + sock.remoteAddress + ':' + sock.remotePort);

    var query = connection.query('SELECT *  FROM tbl_trip WHERE id = ? ',[############# HERE I WANT SESSION RIDE ID #############], function(err, results) {

        if (err) throw err

        driverlat = results[0].driverlat;
        driverLong = results[0].driverlong;
        passengerLat = results[0].passengerlat;
        passengerLong = results[0].passengerlong;
        pathString = results[0].pathString;

    });

});

app.use('/trackride', trackride);


var svraddr = '192.168.100.50000000';
var svrport = 6969;

svr.listen(svrport, svraddr);
console.log('Server Created at ' + svraddr + ':' + svrport + '\n');

我的路由文件“ trackride.js”設置會話如下

var express = require('express');
var router = express.Router();
var url = require('url');
router.post('/', function(req,res,next){

        var reqObj = req.body;  

        var rideId = reqObj.rideId;

        req.session.cookie.rideId = rideId;
        console.log(req.session);

        res.json(responseAns);
});

有沒有辦法在沒有請求的情況下使用express-session值,或者有沒有其他辦法解決我的這個問題?

請提供我的解決方案或相關的工作程序鏈接。

謝謝...

您已經完全混合了Express,http,TCP套接字,WebSocket等。

首先,express-session的概念在HTTP請求之外沒有任何意義。 它告訴您特定HTTP請求屬於哪個HTTP會話。 您如何知道沒有任何HTTP請求的情況? 這沒有任何意義。

其次,您正在創建一個Express應用程序,但是您不讓它在任何端口上偵聽,因此它實際上沒有任何作用。

第三,您在TCP服務器處理程序中設置了一堆全局變量,一旦有多個請求,這些變量就會發生沖突。

WebSocket是您可能需要的(盡管很難從您的問題中猜測)。 您可以看到我在GitHub上發布的WebSocket客戶端和服務器示例:

看一下它是如何工作的,以及這是否是您需要的那種“插座”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM