特定页面的socket.io连接

时间:2013-08-15 00:30:54

标签: javascript node.js sockets websocket socket.io

在我的网站上,我有不同的页面,每个页面都有包含

的javascript
var socket = io.connect('http://localhost:8888');

在app.js(服务器文件)上,它被编码,以便每次收到连接时,无论客户端来自哪个页面,它都会执行某些操作。

io.sockets.on ('connection', function (socket) { 
    // do something
});

但是,我希望app.js根据页面客户端执行不同的操作,这可能吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

有可能。有两种方式:

1)您可以从客户端发送标题和数据。 你可以这样检索它:

String userAgent = request.getHeader("user-agent"); //ter accepting connec Browser identifier.
String remoteAddr = request.getRemoteAddr();

2)另外,您可以发送一个存储客户端ID号的额外变量。在服务器端,您可以将所有客户端ID存储在一个数组中,并且在接受连接后,您可以确定使用if-else ,关于客户端匹配哪个ID并相应地执行任务。

答案 1 :(得分:0)

仅当您将当前页面发送到服务器时,或者只发送location.href以使其对每个页面都是通用的。 SocketIO无法神奇地看到请求来自哪个页面。