ash*_*rok 5 javascript java ssl https websocket
我正在开发一个应用程序有一段时间了,最近我在应用程序上附加了一个 SSL 证书(它不是自签名的;它是由 Comodo 签名的,所以问题不会从这里发生)。我很久以前在我的 Java Glassfish 服务器上实现了一个 WebSocket 端点,并且我将它与 javascript 一起使用。直到现在,当我转向 https 时,我一直通过 http 成功使用 WebSocket。
让我们来看看我使用的代码片段:
服务器端点:
@ServerEndpoint(value = "/ws/chat",
encoders = ChatMessageEncoder.class,
decoders = ChatMessageDecoder.class)
public class ChatEndpoint {
@OnOpen
public void open(final Session session) {
// stuff happenin'
}
@OnMessage
public void onMessage(final Session session) {
// stuff happenin' }
@OnError
public void onError(Throwable t) {
t.printStackTrace();
System.out.println("error");
}
@OnClose
public void onClose() {
}
}
Run Code Online (Sandbox Code Playgroud)
客户端连接:
var wsocketPrivate;
function connectToChatserver() {
var serviceLocation = 'wss://<ip>:8080/ws/chat';
$rootScope.wsocketPrivate = new WebSocket(serviceLocation);
$rootScope.wsocketPrivate.onmessage = onMessageReceived;
};
function onMessageReceived(evt) {
console.log(evt)
};
connectToChatserver();
Run Code Online (Sandbox Code Playgroud)
没有激活 ssl 证书并使用var serviceLocation = 'ws://<ip>:8080/ws/chat';(ws 而不是 wss) 工作得很好。当我移动到 https 时,它要求 wss(浏览器阻止了我的 ws 握手,因为它不安全)并移动到 wss,出现以下错误:
WebSocket connection to 'wss://<ip>:8080/ws/chat' failed: Error in connection establishment: net::ERR_TIMED_OUT
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?你能建议一些测试来了解更多信息吗?
谢谢你,米海
| 归档时间: |
|
| 查看次数: |
1747 次 |
| 最近记录: |