我在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,它有一些限制。任何人都可以帮助我。
答案 0 :(得分:1)
这是一个javascript代码而不是java。我相信javascript对跨站点脚本有限制。这就是为什么它在localhost上运行而不适用于其他主机的原因。我认为您可以在浏览器中禁用安全设置,它可能会起作用,但通常是禁止的。
答案 1 :(得分:0)
包含javascript的Html页面应该从同一个域呈现,否则浏览器安全性将不允许您连接到不同的主机(不提供内容或可能来自不同域的主机)