JavaScript:部署到 Openshift 后出现 Websocket 错误

标签 javascript websocket openshift

我的代码在本地部署时连接到 Websocket 端点作为

 var connection = new WebSocket('ws://127.0.0.1:8080/tweetstream/tweets');  

我将其部署到 Openshift 并且 URL 更改为 http://map-tweetstream.rhcloud.com/tweetstream/

现在我开始看到 WebSocket Error [object Event] 错误,所以在 Developer Tools(Chrome) -> Console 中,我尝试连接到这个 websocket

var connection = new WebSocket('ws://'+ document.location.host + document.location.pathname + 'tweets');
  connection.onopen = function() {
    connection.send('brazil');
  };
  connection.onerror = function(error) {
    console.log('WebSocket Error ' + error);
  };
  connection.onmessage = function(e) {
    var parse = JSON.parse(e.data);
    var coordinates = parse["geo"]["coordinates"];
    console.log("coordinates:" + JSON.stringify(coordinates, undefined, 2));
  };  

我得到的是

WebSocket connection to 'ws://map-tweetstream.rhcloud.com/tweetstream/tweets' failed: Error during WebSocket handshake: Unexpected response code: 404
WebSocket Error [object Event]   

我看到的地方

document.location.host
"map-tweetstream.rhcloud.com"
document.location.pathname
"/tweetstream/"  

这里可能的问题是什么?

最佳答案

您需要将 websocket 连接到应用程序 url 上的端口 8000,而不是端口 80。

ws://map-tweetstream.rhcloud.com:8000/tweetstream/tweets

关于JavaScript:部署到 Openshift 后出现 Websocket 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938343/

相关文章:

javascript - 将对象值映射到键 - Javascript

javascript - Fullcalendar 弹出窗口为空(使用 eventLimit)

java - 如何让 JSR-356 (javax.websockets.api) 在未嵌入的 Jetty 9.3 JEE 环境中工作?

javascript - SprouteCore 与 WebSockets

java - 将 GWT-RPC-Applicaton 部署到 OpenShift 时出现 ClassNotFoundException

javascript - 即使 api 失败,fetch `then()` 仍在执行

javascript - 传入undefined的目的是什么?

java - LibGDX - 将跨平台客户端连接到服务器(HTML5/GWT、iOS、Android 和桌面)

php - 如何在 Openshift 上运行(或者我应该运行)Composer?

java - Minishift - Pod 未启动