Javascript Websocket握手。从ws到wss
我开发一个应用已经有一段时间了,最近我在应用上附加了一个SSL证书(它不是自签名的;它是由Comodo签名的,所以从这里不会出现问题)。很久以前,我在Java Glassfish服务器上实现了一个WebSocket端点,并将其与javascript一起使用。我一直通过http成功地使用WebSocket,直到现在,当我转到https时 让我们看看我使用的代码片段: 服务器端点:Javascript Websocket握手。从ws到wss,javascript,java,ssl,https,websocket,Javascript,Java,Ssl,Https,Websocket,我开发一个应用已经有一段时间了,最近我在应用上附加了一个SSL证书(它不是自签名的;它是由Comodo签名的,所以从这里不会出现问题)。很久以前,我在Java Glassfish服务器上实现了一个WebSocket端点,并将其与javascript一起使用。我一直通过http成功地使用WebSocket,直到现在,当我转到https时 让我们看看我使用的代码片段: 服务器端点: @ServerEndpoint(value = "/ws/chat", encoders = ChatMes
@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() {
}
}
客户端连接:
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();
var wsocketPrivate;
函数connectToChatserver(){
var serviceLocation='wss://:8080/ws/chat';
$rootScope.wsocketPrivate=新的WebSocket(serviceLocation);
$rootScope.wsocketPrivate.onmessage=onMessageReceived;
};
函数onMessageReceived(evt){
控制台日志(evt)
};
connectToChatserver();
未激活ssl证书并使用var serviceLocation='ws://:8080/ws/chat'代码>(ws而不是wss)工作得非常好。当我移动到https时,它请求wss(浏览器阻止了我的ws-handshake,因为它不安全),然后移动到wss时,出现以下错误:
WebSocket connection to 'wss://<ip>:8080/ws/chat' failed: Error in connection establishment: net::ERR_TIMED_OUT
WebSocket连接到'wss://:8080/ws/chat'失败:连接建立中出错:net::ERR\u超时
我做错了什么?你能推荐一些测试来了解更多信息吗
谢谢,,
米海我终于找到了问题所在。我使用了一个nginx前端服务器作为代理。由于某种奇怪的原因,该服务器的默认配置阻止了我的wss。您解决了这个问题吗??我有点陷入了这个困境是的,检查答案。我也面临着同样的问题,你能告诉我你在nginx服务器配置文件中添加了什么额外的配置吗?如果我能让Tyrus以编程方式执行SSL,我可以预见我也会遇到这个问题。配置有什么变化?