如何从远程机器访问websocket

时间:2015-05-22 11:24:36

标签: java html5 websocket glassfish

我在java中创建了一个websocket服务器,glassfish服务器在端口8080上托管它.absbocket服务器的地址是 ip:8080 / EchoChamber / echo  我使用以下link创建了这个websocket服务器 我的客户端是一些嵌入式微控制器和基于Web的应用程序,我在其中查看结果(在Chrome IE浏览器中)。 我的客户端应用程序正在使用一些java脚本来建立与websocket服务器的连接:

<script type="text/javascript">
var webSocket = 
new WebSocket("ws://ip:8080/EchoChamber/echo");

webSocket.onerror = function(event) {
  onError(event)
};

webSocket.onopen = function(event) {
  onOpen(event)
};

webSocket.onmessage = function(event) {
  onMessage(event)
};

function onMessage(event) {
//display message in textboxes
}

问题是当我在本地主机时,我可以在我的应用程序上查看结果,但是当我在远程桌面时,Web浏览器会给出错误,即远程IP上的页面未定义。任何人都可以告诉我如何将我的远程主机浏览器连接到websocket服务器。我试图从我的远程机器访问端口ip:8080,我可以访问它,这意味着玻璃鱼服务器没有任何限制。这是websocket,它有一些限制。任何人都可以帮助我。

2 个答案:

答案 0 :(得分:1)

这是一个javascript代码而不是java。我相信javascript对跨站点脚本有限制。这就是为什么它在localhost上运行而不适用于其他主机的原因。我认为您可以在浏览器中禁用安全设置,它可能会起作用,但通常是禁止的。

答案 1 :(得分:0)

包含javascript的Html页面应该从同一个域呈现,否则浏览器安全性将不允许您连接到不同的主机(不提供内容或可能来自不同域的主机)