我一直在使用gimite/web-socket-js实现WebSocket,它不仅支持Chrome浏览器,而且还支持开发版本的Safari。我希望将其从Ruby服务器迁移到Node.js上。但突然间,除了Chrome浏览器外,其他浏览器都无法正常使用。
我怀疑与需要实现的Flash Socket Policy文件有关。我想将其作为一个外部的Node.js进程来实现,以免影响原始应用程序。我正在使用node-websocket-server来实现WebSocket协议,同样地,我也不想对其进行更改。
看起来最简单的方法是运行flashsocket.js,但运行后出现以下错误:
sys:334
ctor.prototype = Object.create(superCtor.prototype, {
^
TypeError: Object prototype may only be an Object or null
at Function.create (native)
at Object.inherits (sys:334:29)
at Object.<anonymous> (/Users/me/Projects/testing/websocket/node-websocket-server/flashsocket.js:10:16)
at Module._compile (node.js:472:23)
at Module._loadScriptSync (node.js:479:10)
at Module.loadSync (node.js:349:12)
at Object.runMain (node.js:532:24)
at node.js:762:10
在这里,我们遇到了Node.js被喜爱的迷人的神秘错误。
我的问题是,是否有一个独立的全局Flash套接字策略服务器,我可以在Node.js或其他应用程序上运行? 我的理解是,我只需要让它驻留在843端口上。或者,是否有另一个WebSocket库可以处理Flash策略,就像Ruby服务器那样?