当前位置: 首页 > 面试题库 >

WebSocket与OpenShift应用的连接失败

令狐弘益
2023-03-14
问题内容

我使用NodeJS创建了一个应用程序,并且正在使用ws模块。如果我在本地主机上测试该应用程序,则它可以正常工作,并且连接websockets没有任何问题。现在,我已将应用程序上载到Openshift,当我尝试从客户端访问该应用程序时,它返回,这无法建立与Websocket的连接。

如果我在应用程序中拖入腻子, 则会收到 以下消息: 调试:这种类型的响应一定不能有主体。 忽略传递给end()的数据。

我在服务器中拥有的代码是:

#!/bin/env node

//Openshift variables
var ipaddress = process.env.OPENSHIFT_NODEJS_IP || "192.168.69.42";
var port = process.env.OPENSHIFT_NODEJS_PORT || 8080;


//NodeJS require modules
var Enum = require('enum');
var WebSocketServer = require('ws').Server
    wss = new WebSocketServer({host:ipaddress, port:port});
var fs = require('fs');


wss.on('connection', function(ws) {
    console.log((new Date()) + ' Connection from origin: ' + ws._socket.remoteAddress);
});

console.log((new Date()) + " Server is listening on: " + ipaddress + ':' port);

在客户端中:

var ws = new WebSocket("ws://192.168.69.42:8080/");

ws.onopen = function() {
    console.log("Connected.");
    ws.send("This is the client speaking.");
};

问题答案:

对于OpenShift上的所有WebSocket连接,您需要使用port 8000
(对于Secured会话,它应该是8443)。因此,您的服务器示例运行良好(我在删除了不必要的行后运行了它们var Enum = require('enum');,您只需将客户端上的端口硬编码为8000

var ws = new WebSocket("ws://YourApp-YourName.rhcloud.com:8000");

ws.onopen = function(){
  console.log('opened')
}

更多信息在这里。



 类似资料:
  • 使用 jar 包 , 连接 websocket, 用域名的方式连接失败, 中间有通过 nginx 转发 用浏览器的控制台 new Websocket(wss://域名) 已经成功 nginx 配置正常的 , 用于 websocket 的配置添加了 使用 ws://域名 方式报 400 错误 用 wss://域名 方式 nginx 连请求都没收到 域名是买的, 是能通过验证的 使用 http 直接连

  • 我正在使用套接字。io,应用程序由AWS提供。我收到一个浏览器控制台错误: websocket.js:54 WebSocket 连接到 'wss://www.tidee.com/socket.io/?EIO=4 客户代码: 服务器代码: 在 AWS 中,安全组接受端口 443,负载均衡器侦听端口 443。 应用程序在本地运行时工作(状态 101),并使用 协议。

  • 错误:无法启动连接:错误:WebSocket无法连接。在服务器上找不到连接,endpoint可能不是信号器endpoint,服务器上不存在连接ID,或者存在阻止WebSocket的代理。如果有多台服务器,请检查是否启用了粘性会话。 WebSocketTransport.js:49WebSocket连接到“ws://xxxxxx/生产/网络服务/集线器/spreadhub”失败: Angular.t

  • 问题内容: 我尝试使用nginx设置nodejs。但是当客户端尝试连接时,它将失败并显示… 那么如何启用websocket通信呢? 我目前的Nginx配置 问题答案: 首先,将您的nginx服务器升级到1.3或更高版本。 其次,我的nginx conf有效。您可以关注我的conf。

  • 在OpenShiftV3中,我无法将我的springboot应用程序与mySQL POD链接起来。 到目前为止我所做的: > 在openshift V3中启动并运行了一个基本的spring boot应用程序。 添加了一个mysql应用程序。pod已启动并运行,没有错误。 在我的spring boot应用程序的application.properties中添加了数据源配置: spring.datas

  • 我正试图将socket.io与Angular集成,但在建立从客户端到服务器的连接时遇到了困难。我已经查看了其他相关问题,但我的问题发生在本地,所以中间没有web服务器。 这就是我的服务器代码的样子: 我使用Grunt按以下顺序加载客户端JavaScript文件: 我刚刚意识到websockets正在部分工作。我在Chrome开发者控制台看到一个101交换协议请求。但是,我看到的帧只有Engine.