JavaScript Websocket仅适用于localhost

时间:2017-09-12 08:50:14

标签: javascript websocket

有谁能告诉我如何使用JavaScript创建一个带有远程IP地址的wss连接?

我的websocket仅适用于127.0.0.1localhost

ws = new WebSocket("wss://127.0.0.1:13529");
ws.onopen = function() {
  alert("连接成功");
  ws.send('tom');
  alert("给服务端发送一个字符串:tom");};
  ws.onmessage = function(e) {
  alert("收到服务端的消息:" + e.data);
};

将127.0.0.1更改为我的IP地址后,无法建立连接。

我找到了帖子Why did I failed to connect to websocket?

它说设置' 0.0.0.0'可以解决这个问题。但是,我将代码更改为以下内容,无法运行。

enter image description here

错误消息是:

Uncaught SyntaxError: Unexpected identifier

我还安装了ssl证书: install ssl cert

1 个答案:

答案 0 :(得分:0)

Websockets看起来不像是支持原始套接字标准化。

或者更具体地说是在两个浏览器之间直接通信所需的原始套接字部分,而无需主机服务器来重新构建数据。

但是要回答你的问题,请在google网络应用中(to be discontinued早期,每个Chrome新闻稿)他们确实有一个使用this code / web app 运行websockets的网络服务器(适用于Chrome的Web服务器) 由chromebeat.com提供),允许其他系统访问Web服务器。我没有检查他们的代码。

鉴于坏消息,我建议使用nodejs。

https://www.w3.org/TR/websockets/目前已发布。

  

遵循HTTP程序可能会带来严重的安全性   Web浏览器上下文中的问题。例如,考虑一个带有a的主机   一个路径上的WebSocket服务器和另一个路径上的打开HTTP重定向器。   突然之间,任何可以赋予特定WebSocket URL的脚本都可以   被欺骗沟通(并可能分享秘密)   with)Internet上的任何主机,即使脚本检查了该URL   拥有正确的主机名。

https://w3c.github.io/websockets/发展

  

Web平台工作组中没有人积极致力于此   规格。对于最新版本的WebSocket API使用   什么是生活标准。

https://html.spec.whatwg.org/multipage/web-sockets.html#network

  

使Web应用程序能够维持双向通信   对于服务器端进程,本规范介绍了   WebSocket接口。

     

此接口不允许对底层的原始访问   网络。例如,此接口无法用于实现   IRC客户端没有通过自定义服务器代理消息。

Web服务器需要对套接字进行原始访问:(