是否有可能将HTTP头添加到Socket.io握手?

我试图确保我的socket.io客户端和node.js端之间的通道。 主要的Web应用程序在Drupal中,所以如果node.js位于另一个主机上,我不能将cookies传递给node.js。 我想添加一些自定义头到他的Socket.io HTTP握手(如PHP会话)。 你知道这有可能吗? 使用Socket.io 0.7

PS:我只是在这里集思广益。 我喜欢这个问题,并且会更多地考虑这个问题。 我只考虑它,但从node.js相同的域只…

Github问题

我不知道(不这么认为)如果可以添加标题。 PS:我想你也应该尝试填写问题在https://github.com/LearnBoost/socket.io/issues github的好处在于,当有人发布问题时,作者将收到一封电子邮件。 另外,在学习提升的人真的很好,谁喜欢帮助你。

代理

代理您的请求,以便请求来自同一个域。

Refererer

引用者通过,所以你可以传递这个信息。 这也可以被欺骗,所以你最好创build一些你可以从Drupalvalidation的东西(只有一次)。 我想这会很容易实现…

validation后才允许消息stream动。

我知道你可以做的是通过socket.disconnect()断开套接字。 打开连接并检索socket.io的ID,但只有在身份被批准后才接受消息。 我会做一个路由可用通过快递,哪些Drupal可以卷发post.io的id到(保持路由私有)。 因为你在Drupal的域中,所以你可以访问Drupal的会话信息。

 // v0.7.x var sid = socket.id; 

为了确保安全,唯一的select是使用SSL(这是唯一可以使任何通信链路安全的方法)。 如果你信任这两个域的SSL可能不是真的有必要。 然后,如果允许socket.io的id,你将允许消息stream动,否则我只是断开连接。

PusherApp

另一种select是实施/克隆pusherapp身份validation=> http://pusher.com/docs/client_api_guide/client_channels#subscribe-private-channels

认证

PS:我会尝试上传一个例子,但现在是我睡觉的时候了。 希望这是有道理的:)…