【发布时间】:2013-04-21 00:01:19
【问题描述】:
我想知道每次新客户端使用其 Web 服务器时在 YAWS 中执行了哪些代码...
首先我尝试了解 YAWS 如何处理并发用户...并尝试以下 .yaws 页面:
io:format("~nProcess Identifier: ~p Port: ~p Client: ~p YAWS pid: ~p ~n",[self(), A#arg.clisock, A#arg.client_ip_port, A#arg.pid]).
它应该返回每个客户端的 Pid 、端口和 ip...我在同一个浏览器 (Firefox) 上打开了这个页面并打开了两个不同的选项卡...这是打印出来的:
Process Identifier: <0.65.0> Port: #Port<0.1211> Client: {{127,0,0,1},60451} YAWS pid: <0.65.0>
Process Identifier: <0.65.0> Port: #Port<0.1211> Client: {{127,0,0,1},60451} YAWS pid: <0.65.0>
由于某种原因,返回了相同的端口和 pid(因此,YAWS 不会为每个客户端创建新端口或新 pid)。
当我在 Chrome 上试用时,打印出来的是:
Process Identifier: <0.71.0> Port: #Port<0.2998> Client: {{127,0,0,1},60543} YAWS pid: <0.71.0>
Process Identifier: <0.71.0> Port: #Port<0.2998> Client: {{127,0,0,1},60543} YAWS pid: <0.71.0>
因此,为什么 YAWS 没有为同一浏览器上的每个选项卡打开新的端口或 pid? 另外,回到最初的问题,YAWS 是在哪里以及在哪些代码中生成新的 PID 或打开新的端口?
谢谢
【问题讨论】: