Java 如何从远程计算机访问websocket

Java 如何从远程计算机访问websocket,java,html,websocket,glassfish,Java,Html,Websocket,Glassfish,我已经用java创建了一个websocket服务器,glassfish服务器在8080端口托管它。websocket服务器的地址是ip:8080/EchoChamber/echo 我使用以下方法创建了这个websocket服务器 我的客户是一些嵌入式微控制器和基于web的应用程序,我在其中查看结果(在chrome IE explorer中)。 我的客户端应用程序正在使用一些java脚本建立与websocket服务器的连接: <script type="text/javascript">

我已经用java创建了一个websocket服务器,glassfish服务器在8080端口托管它。websocket服务器的地址是ip:8080/EchoChamber/echo 我使用以下方法创建了这个websocket服务器 我的客户是一些嵌入式微控制器和基于web的应用程序,我在其中查看结果(在chrome IE explorer中)。 我的客户端应用程序正在使用一些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
}

变量webSocket=
新的WebSocket(“ws://ip:8080/EchoChamber/echo”);
webSocket.onerror=函数(事件){
onError(事件)
};
webSocket.onopen=函数(事件){
onOpen(活动)
};
webSocket.onmessage=函数(事件){
onMessage(事件)
};
函数onMessage(事件){
//在文本框中显示消息
}

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

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

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

我说客户机使用java脚本,而websocket服务器是用java编写的。这就是问题所在。如果网站在您的计算机中打开,但它试图打开一个WebSock到另一个IP,则会失败。网站应托管在某台服务器上,而websocket必须位于同一台服务器上。实际上,websocket位于glassflish服务器上,而网站位于apache服务器上(