Redian新闻
>
Node.js question on identifying 2 different web browser tab/pages
avatar
Node.js question on identifying 2 different web browser tab/pages# Programming - 葵花宝典
p*w
1
特护期间强烈请广大P民自觉主动遵守执行指令zz
中宣部:迎接党庆90周年特护期间,各媒体不要报道和渲染对《建党伟业》影片的负面
评论和消息。
avatar
x*t
2
临走前,老差役想起什么,掏出几张纸,对手下道:“将这院中的房门都封上!货
物也封了!”
其后戴恭和李佑、韩宗被押出门外,朝西边兵马司方向而去。门外有些看热闹的闲
汉,其中一个却是李大人的家奴,对着老爷使了个眼色,表示已经有人去报信了。
南城兵马司里,吏目张功业坐在公房冇中,不紧不慢的翻看公文,并等待今天的肥
羊送到。按照昨日的名单,今日大概有五个左右“到案”。
京师的五城兵马司内部官吏大体设置如下,每处设正六品指挥一员,正七品副指挥
四员,无品级吏目一员,吏员十人。
这些官吏分工各有不同,兵马司指挥总管本司,并负责与巡城御史、巡捕营以及其
他衙门打交道;副指挥分巡各坊,直接弹压地面;吏目有负责本衙事务的,有和副指挥
一样巡视各坊的,视情况而定。
南城兵马司的张吏目任职已经七八年,在衙中地位特殊。
他深得三任指挥信重,得以坐镇衙署处理庶务,实际权力要超过副指挥。
原因很简单,他这样的老人,既熟悉南城地面,又能够为兵马司稳妥可靠安全的创
造收入。当然,他的成功也得利于南城这片万商云集的得天独hòu之地。
其实要论起血统,张功业与勋贵之家昌安伯乃同宗,只不过他是没什么分量的旁枝
而已。恩荫之类的好处,想都别想,这个兵马司吏目的职位,也是费了很大劲才得到的。
想当初,其他人都向往在内城居住做事,杂乱无章的外城被视为南郊,京师本地有
点体面的人,都是不大愿意去的。而他则不挑不拣,来到了这南城兵马司,一干就是八
年。
是他发明了与宣课分司联动“办案”的法子,大大提高了效率和精准度;是他制定
了捉拿“嫌犯”的原则和方针,并耐心输灌给每一个差役;是他主持“审问。”力图在
程序上做到无懈可击。
至少在他自己看来,确实是无懈可击,即便官司打到金銮殿上,他也可以为辩白,
他有这个自信。
天子脚下要安稳,刑名捕盗当然很重要。而那宣课分司职责只是收税不负责刑名,
发现了可疑份子总应该向兵马司举报,这没错;
兵马司接到了举报总该派差役去甄别,这也没错;若是确实可疑,总该将嫌犯带回
衙门审问,这还是没错;
嫌犯都是外地人,审问时如果需要赶赴外地核实身冇份,也很正常。那么在此期间
,嫌犯按规矩扣在牢狱中也没*启航文字*什么不对的。
最后,如果嫌犯因为各种缘故确实不能住在牢里,又考虑到并没有发现实际罪行,
那么法理不外乎人情,那么让嫌犯交一笔押金,便可以暂时离开牢狱,难道不应该么?
上面那些,哪一条不合乎大明律法?正是通过这些一环冇扣一环的精密措施,南城
兵马司吏目张先生借用律法为自己构筑起了相当牢固的保护网,这么多年来可以说波澜
不惊、安然无恙。当然,他的上司们也都受益匪浅的。
张先生每每看到邸报上那些因为贪赃而受到处罚的官员事例,发自内心的鄙视之情
就会油然而生,那些蠢官做事太没有技术含量了,活该被处罚。
虽然张吏目也算人在京冇城,但朝堂上的风雨和官场中的风云,距离他很远很远。
他就在这南城小天地中,自得其乐又平平稳稳的渡过了一年又一年,迎来一任又一任的
上司。
大概是太出色的原因,他的位置始终也没有动过。如果没有什么意外,日子好像要
永远这样过下去,直到他老的动不了那一天。
却说戴恭和他的两个“伙计”被带到南城兵马司,又被直接领到西侧院。
在院门口遇到两个差役押着一个绸衫商人出来,还有个吏员在旁边。那吏员边走边
道:“事情就是这样,没别的法子,你去忍上*清逸尔雅*几天好了。”
“在下哪里有这功夫,求老兄帮忙关说一二,在下确实清白的很。”
“帮你说情也不是不可以,但实话实说,若没银子都是白费口水。”
“好说!好说!”
李佑听清了说话,便扫了那边一眼,这也是今天被抓来的“肥羊”?从短短几句话
里,底层衙门经验丰富的李大人就能猜出几分内情。
八成是在里面先吓唬几句,叫“肥羊”胆战心惊。然后到了外头,就有吏员出面,
假装当好人以帮忙说情为由收银子。
若最后事情“办成”了,那“肥羊”还得心存感jī,也就当做“破财免灾。”没
有继续闹得心思了。
分工很明确啊,有去抓人的,有主审唱黑脸的,有好心唱红脸的,一个兵马司衙门
里人人有份、利盖均沾,难怪这么多年可以稳妥运行没有翻车……李佑暗想,只怕他们
三人过了堂出来时,也要遇到这么一个“好心”的吏员。
进到侧院中,带队的老差役先入屋禀报,没多久又将李佑等人传唤进去。这房里面
积不大,李佑等三人站在中间空地,感觉上就要将屋中空余地方塞满了。
前方公案后,坐着一位年近四十的男子,身上当没有官服,只是一领青色吏员袍。
从这服侍看,李佑便猜他是南城兵马司吏目,根据崇文门陆大使交待,南城兵马司里确
实是由一个吏目主持此事。
果然听到立在旁边的老差役喝道:“此乃本衙门吏目张先生问你们话!”
戴恭等人连忙躬身行礼。这回李大人学乖了,并没有与吏目对视,免得又暴冇露身
冇份,只管低着头看地板。
李大人到任时问不算长,与各巡城御史和兵马司指挥都打过照面,但副指挥及以下
都没见过他,所以他与眼前这个姓张的吏目互不相识。
张吏目只将注意力放在戴恭这里,因为根据信息,这才是正主。多少年来,这套路
再熟练不过,他将戴恭呈上来的路引装模作样仔细验看,其实就是个过场,无论如何结
果都一样的。
这随便一看不要紧,还真看出问题了。路引上记载“伙计二人,一人身量高于常人
,面色黑,脸大,眼如细丝。”张先生抬头看了看李佑,差了十万八千里。
路引上还记载“一人身量中等,略胖大,貌丑有皱纹。”张先生又抬头看了看韩宗
,更扯淡。
依照南城兵马司的规矩,没问题也要当成有问题,更别说真有问题了……
啪!张吏目将路引拍在案上,“路引所载,与事实不符!我怀疑尔等伪造路引,私
渡关津!须得严加勘查!”
戴恭急忙叫屈道:“官爷可仔细了?小的路引从县中所领,所记无不照实,如何就
成伪造的?”
“还敢狡辩!你这路引所登载同伙二人相貌与眼前这二人完全不相符,还有什么可
说的!”
这,戴恭语塞,真冇实的活计早被暂时打发出去了,身边这俩闲的无聊人士本来就
是冒充的,能和路引上的相貌描述完全符合就见鬼了。
之前他根本就没想到这个,忘了路引不仅仅是他自己的路引,还简略记载了他的伙
计。不会真被判成伪造路引受处罚罢……
李佑同样忽视了这点,不过他没有太在意,冇今天目的相当明确,自己有没有问题
都无所谓。
不过看到戴恭急的说不出话,李佑真为他的应变能力变感到悲哀,便亲自对张吏目
道:“回老先生的话,戴老爷先前两个伙计都在半路离开了,但戴老爷又急需人手,我
二人在半路便应聘为伙计一同到京,但路引还是开始那个路引。所以此中自有别情,还
请明察!”
“再狡辩也是违法乱制!中途易人,为何不在当地更换路引?分明是尔等轻忽制度
,不将*启航文字*官府放在眼中!”
这人言辞还挺敏利,大帽子扣的也很娴熟,李佑张口就要反驳,却见那张吏目再次
拍案,喝道:“我不与你们消磨时间,就算你们所说皆为实情,那么也要赴虚江县详加
核实!暂且扣下你们等待核实消息!左右将此三人带下!”
李佑大声道:“你这处置好生没道理,虚江县来去一次,何止两月,难道就为此小
事,我们都要在牢里关上几个月?再说为这区区小案,也要派人远赴江南,你们兵马司
的人力当真都闲到没事做了么?”
张吏目呵斥道:“小子住口!有没有道理不是你说了算的!我兵马司人力如何用,
也不是你该管的!律法无私,本就该从严执冇法,你这黄口小儿懂个什么。”
李佑愤愤不平道,“什么律法无私,我看你就是将官府公器当成了发财工具罢,这
点把戏也敢大言不惭,叫人好笑得很!”
张吏目暗道差役果然说的不错,这个年轻人确实是个没见过世事的富家子弟,少见
多怪不明事理,说起话来幼稚得很。
于是冷笑几声道:“年轻人,说话要负责!我不与你计较,不然就要治你一个污蔑
官府之罪!我大明是有律法为准绳,你若不服,可以去上告,刑部就在西城,受理一切
京冇城案件的上告!无凭无据的空言,实在没什么用,还是先等你从牢中出来再说罢!”
几个差役围住三人,!声高喝,便要押送三人向外行去。
avatar
s*n
3
腾讯科技讯(霖言)2月27日消息,著名通信行业独立评论人李易今日下午在其微博爆
料,称在诺基亚放弃MeeGo后,英特尔为保MeeGo业务全球大肆挖角,挖来曾在展讯及易
狄欧担任副总裁的业内资深人士周承云主管MeeGo中国区业务。
独家披露:诺基亚放弃MeeGo之后,英特尔反其道而行之,决定加速!目前全球实施大
挖角策略,中国区也同步跟进。据悉,英特尔软件与服务事业部亚太区合作伙伴关系与
战略业务发展总监何淑芬女士日前已成功说服曾在展讯及易狄欧担任副总裁的业内资深
人士周承云同志主管MeeGo中国区业务,目前人已到岗待命。
2月11日下午,诺基亚在伦敦举办战略发布会,宣布与微软WP7操作系统展开合作,并将
采用微软Bing搜索引擎。这也意味着诺基亚最终决定放弃和英特尔共同打造的MeeGo操
作系统,转投微软怀抱。
2月15日消息,在全球移动大会(Mobile World Congress)上,英特尔对诺基亚这个昔
日伙伴发出警告,称被诺基亚抛弃的MeeGo开源操作系统将会继续得到英特尔和Linux基
金会的支持。而且,随着MeeGo的发展,它最终将成为诺基亚的救星。
avatar
s*w
4
This is the flow,
web client Node server backend program
i could have 2 different browse tabs for the same URL,
in the 1st one i click "send me info A from backend",
in 2nd webpage i click "send me info B from backend".
Now how do i distinguish A and B in the node.js ?
Was looking for sample for session/cookie, just cannot find the right sample.
Thanks very much !
avatar
b*z
5
link?
avatar
k*n
6
打脸了。。打脸了!!!
最近的看的书有掀起了一波打脸高潮啊。。。
这个算差的,,
avatar
p*2
7
stateless吧?
avatar
s*w
8
大牛请多展展,我是刚开始学node。
最土的方法据说是每个session开一个socket,然后node server根据socket handle来
区分。
但我想总有现成简单的方法吧。
谢谢!

【在 p*****2 的大作中提到】
: stateless吧?
avatar
l*n
9
一个session可以开n个socket.
甚至一个page可以开多个websocket.
不同的socket干不同的事情

【在 s*****w 的大作中提到】
: 大牛请多展展,我是刚开始学node。
: 最土的方法据说是每个session开一个socket,然后node server根据socket handle来
: 区分。
: 但我想总有现成简单的方法吧。
: 谢谢!

avatar
l*n
10
只是不明白你为什么要用socket?
avatar
s*w
11
大牛有没有更简单的办法?

【在 l**********n 的大作中提到】
: 一个session可以开n个socket.
: 甚至一个page可以开多个websocket.
: 不同的socket干不同的事情

avatar
s*w
12
不会做啊,就听别人说了

【在 l**********n 的大作中提到】
: 只是不明白你为什么要用socket?
avatar
l*n
13
筒单的吧?用query url.

【在 s*****w 的大作中提到】
: 大牛有没有更简单的办法?
avatar
s*w
14
我什么都不会,:(
能给我写一段吗?伪币答谢。。。

【在 l**********n 的大作中提到】
: 筒单的吧?用query url.
avatar
l*n
15
like this:
?page=page1
?page=page2
on server side:
switch(req.query.page){
case 'page1':break;
case 'page2':break;
default:break;
}

【在 s*****w 的大作中提到】
: 我什么都不会,:(
: 能给我写一段吗?伪币答谢。。。

avatar
s*w
16
可能我没说清楚,
2个web browser 都可以同时打开page1的,你这个可以区分吗?
谢谢!

【在 l**********n 的大作中提到】
: like this:
: ?page=page1
: ?page=page2
: on server side:
: switch(req.query.page){
: case 'page1':break;
: case 'page2':break;
: default:break;
: }

avatar
l*n
17
two different browsers could share the same session ID, or have different
sessions. if you open two pages in the same browser, they will have the
session ID.
on the server side, they belong to two different sessions.

【在 s*****w 的大作中提到】
: 可能我没说清楚,
: 2个web browser 都可以同时打开page1的,你这个可以区分吗?
: 谢谢!

avatar
s*w
18
if i open 2 pages in the same browser,
in 1st page i click "button A",
in 2nd i click "button B".
if there have the same session ID, how can i distinguish them ?
(for our backend, there's only 1 pipe from web server to backend, when i get
data back, i need to know where to send the result to ...)

【在 l**********n 的大作中提到】
: two different browsers could share the same session ID, or have different
: sessions. if you open two pages in the same browser, they will have the
: session ID.
: on the server side, they belong to two different sessions.

avatar
b*0
19
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end("");
}).listen(8080);
函数里不是这个req res成对的么 根据req给res返回就行了啊 不会混的啊
如果是要区分用户的话
response.writeHead(200, {
'Set-Cookie': 'key=value',
'Content-Type': 'text/plain'
});
不同的用户给个不同的value就行了 然后parse req就可以区分用户了
avatar
s*w
20
先容我理解一下,谢谢了!

【在 b********0 的大作中提到】
: http.createServer(function (req, res) {
: res.writeHead(200, {'Content-Type': 'text/plain'});
: res.end("");
: }).listen(8080);
: 函数里不是这个req res成对的么 根据req给res返回就行了啊 不会混的啊
: 如果是要区分用户的话
: response.writeHead(200, {
: 'Set-Cookie': 'key=value',
: 'Content-Type': 'text/plain'
: });

avatar
d*n
21
generate uuid in cookie if not exists
https://github.com/broofa/node-uuid
uuid will be bound with cookie and in your request object.
bind some information for each uuid then you will know what the page state
is.

sample.

【在 s*****w 的大作中提到】
: This is the flow,
: web client Node server backend program
: i could have 2 different browse tabs for the same URL,
: in the 1st one i click "send me info A from backend",
: in 2nd webpage i click "send me info B from backend".
: Now how do i distinguish A and B in the node.js ?
: Was looking for sample for session/cookie, just cannot find the right sample.
: Thanks very much !

avatar
s*w
22
非常谢谢,让我去学习一下。

【在 d****n 的大作中提到】
: generate uuid in cookie if not exists
: https://github.com/broofa/node-uuid
: uuid will be bound with cookie and in your request object.
: bind some information for each uuid then you will know what the page state
: is.
:
: sample.

avatar
j*f
23
这个用socketio应该很容易
avatar
s*w
24
Can dryden and other big cow help me to complete this,
Thanks very much !
var express = require("express");
var session = require("express-session");
var app = express();
//Creating Router() object
var router = express.Router();
// Router middleware, mentioned it before defining routes.
router.use(function(req,res,next) {
console.log("/" + req.method);
next();
});
router.use("/user/:id",function(req,res,next){
console.log(req.params.id)
if(req.params.id == 0) {
res.json({"message" : "You must pass ID other than 0"});
}
else next();
});
// Provide all routes here, this is for Home page.
router.get("/",function(req,res){
res.json({"message" : "Hello World"});
});
router.get("/user/:id",function(req,res){
res.json({"message" : "Hello "+req.params.id});
});
// Tell express to use this router with /api before.
// You can put just '/' if you don't want any sub path before routes.
app.use("/api",router);
app.use( session( {
genid: function(req)
{
return genuuid()
},
secret: 'keyboard cat',
resave: false,
saveUninitialized: true
} ));
// Listen to this Port
app.listen(8888,function(){
console.log("Live at Port 8888");
});

【在 d****n 的大作中提到】
: generate uuid in cookie if not exists
: https://github.com/broofa/node-uuid
: uuid will be bound with cookie and in your request object.
: bind some information for each uuid then you will know what the page state
: is.
:
: sample.

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。