我想知道每次新客户端使用其 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 或打开一个新的端口?
谢谢