我正试图在Openshift上托管一个web应用程序。我正在使用一个处理所有连接的websocket。但是,我不确定为我的套接字url输入什么值。我有一个.js文件,上面写着:
...
// socket connection url and port
var socket_url = '192.168.8.102';
var port = '8080';
$(document).ready(function() {
$("#form_submit, #form_send_message").submit(function(e) {
e.preventDefault();
join();
});
});
var webSocket;
/**
* Connecting to socket
*/
function join() {
// Checking person name
if ($('#input_name').val().trim().length <= 0) {
alert('Enter your name');
} else {
name = $('#input_name').val().trim();
$('#prompt_name_container').fadeOut(1000, function() {
// opening socket connection
openSocket();
});
}
return false;
}
/**
* Will open the socket connection
*/
function openSocket() {
// Ensures only one connection is open at a time
if (webSocket !== undefined && webSocket.readyState !== WebSocket.CLOSED) {
return;
}
// Create a new instance of the websocket
webSocket = new WebSocket("ws://" + socket_url + ":" + port
+ "/WebMobileGroupChatServer/chat?name=" + name);
....
当我在本地测试它时,它可以使用我的本地ip地址192.168.8.102作为socket_url完美地工作。然而,如果我要把我的程序放到网上托管,我应该输入socket_url的什么值?我的域名是http://jbosslew-weihao.rhcloud.com/
当我使用tomcat apache服务器在本地测试它时,域名是http://192.168.8.102:8080/WebMobileGroupChatServer/
如何在openshift上找到我的服务器的套接字url?
根据https://developers.openshift.com/en/managing-port-binding-routing.html您需要将其绑定到端口8000
以进行常规访问,或者绑定到端口8443
以进行安全访问
所以你的websockets url应该是以下其中一个:
ws://app-domain.rhcloud.com:8000/path
wss://app-domain.rhcloud.com:8443/path