-1

我在我的应用程序中使用 Websocket 编程 这是我来自 UI 屏幕的 Websocket 客户端。

当我使用协议 ws 时,它正在联系服务器。

var wsUri = "ws://localhost:"+<%=request.getLocalPort()%>+"/Ravi/hello-html5";
websocket = new WebSocket(wsUri);

但是如果将 ws 替换为 http ,它就不会连接到服务器。

就是这个网址

http://localhost:"+<%=request.getLocalPort()%>+"/Ravi/hello-html5";

这是我的 web.xml

 <servlet>
    <servlet-name>HelloHtml5</servlet-name>
    <servlet-class>org.Html5Servlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>HelloHtml5</servlet-name>
    <url-pattern>/hello-html5/*</url-pattern>
  </servlet-mapping>
  </web-app>

请让我知道为什么http不起作用?

4

1 回答 1

1

当您使用 http uri 调用 new WebSocket 时会发生什么?是否抛出了 SyntaxError 或者您的 websocket 的 onerror 或 onclose 回调是否运行?

JavaScript APIwebsocket 规范不清楚哪些 url 方案是可接受的。如果抛出 SyntaxError,则您的浏览器将 http 作为无效方案拒绝。其他浏览器的行为可能不同。如果您的回调之一正在运行,则服务器拒绝连接。其他服务器(你没有说你正在使用哪一个)可能会有不同的行为。

于 2012-08-06T08:09:22.177 回答