通过网络插座暴露插座

时间:2011-10-05 13:33:13

标签: javascript html5 websocket

我有一个服务器在端口8181上创建一个套接字。我想从谷歌浏览器14中打开的网页访问该套接字。我想这是不可能的。 Chrome提供对Web套接字的支持,但不支持标准套接字。是吗?

是否有可能以某种方式创建一个中介,将我的套接字服务器暴露在端口8181上作为在其他端口上运行的Web套接字服务器?

1 个答案:

答案 0 :(得分:6)

websockify是TCP套接字代理/网桥的通用WebSockets。我最初创建了websockify以允许noVNC(HTML5 VNC客户端)能够连接到未修补的VNC服务器。但它通常是有用的(不是VNC特定的)所以我把它作为一个单独的项目分开。

在UNIX / Linux系统上,您可以像这样运行websockify:

./websockify 8080 my_server:8181

上例中的端口8080是侦听WebSocket连接的端口。 my_server是系统的名称/ IP,其中服务器正在侦听端口8181.如果您在与服务器相同的系统上运行websockify,那么您可以使用localhost代替'my_server'。

websockify项目还附带了一个名为websock.js的Javascript包装器库。 websockify支持新的协议版本(由Chrome 14+和Firefox 6+使用),但它也适用于旧版本。但是,使用旧版本的协议无法发送原始二进制数据(仅限UTF-8),因此在使用时,websock.js和websockify一起工作以对数据进行base64编码/解码(在浏览器和websockify之间)较旧的协议,以便您仍然可以向目标发送原始二进制数据。