diff --git a/app/main/chat.php b/app/Main/Chat.php
similarity index 100%
rename from app/main/chat.php
rename to app/Main/Chat.php
diff --git a/app/websockets.php b/app/WebSockets.php
similarity index 100%
rename from app/websockets.php
rename to app/WebSockets.php
diff --git a/index.html b/index.html
index 6b18cc0..46b38a6 100644
--- a/index.html
+++ b/index.html
@@ -5,7 +5,7 @@
Chat
-
+
diff --git a/js/app.js b/js/app.js
index 99622b5..57325ae 100644
--- a/js/app.js
+++ b/js/app.js
@@ -1,3 +1,7 @@
+var domain = location.host.replace('www.','');
+var workerProtocol = (window.location.protocol === 'https:') ? 'wss:' : 'ws:';
+var workerUri = workerProtocol + '//' + domain + ':8080';
+
window.onload = function (){
var msgWorker = this.msgWorker;
@@ -21,6 +25,9 @@ window.onload = function (){
setSocketStatus(false);
break;
}
+
+ // show webSocket info
+ console.info(load.socket);
}, false);
worker.onerror = function(e){
@@ -31,7 +38,7 @@ window.onload = function (){
var msgWorkerInit = new msgWorker('ws:init');
msgWorkerInit.data({
- uri: 'ws://wstest.local:8080'
+ uri: workerUri
});
worker.port.postMessage(msgWorkerInit);
diff --git a/js/worker/chat.js b/js/worker/chat.js
index d0e167b..6e3c509 100644
--- a/js/worker/chat.js
+++ b/js/worker/chat.js
@@ -12,17 +12,19 @@ var initSocket = function(uri){
socket = new WebSocket(uri);
socket.onopen = function(e){
+ msgWorkerOpen.socket = this;
- //
ports[ports.length - 1].postMessage(msgWorkerOpen);
socket.onmessage = function(e){
-
let load = JSON.parse(e.data);
- var msgWorkerSend = new msgWorker('ws:send');
+
+ let msgWorkerSend = new msgWorker('ws:send');
+ msgWorkerSend.socket = this;
+
msgWorkerSend.data(load);
- for (var i = 0; i < ports.length; i++) {
+ for (let i = 0; i < ports.length; i++) {
ports[i].postMessage(msgWorkerSend);
}
@@ -32,7 +34,13 @@ var initSocket = function(uri){
};
socket.onclose = function(){
- console.info('ws: onclose()');
+ let msgWorkerWsClosed = new msgWorker('ws:closed');
+ msgWorkerWsClosed.socket = this;
+
+ console.log(socket.readyState);
+ for (let i = 0; i < ports.length; i++) {
+ ports[i].postMessage(msgWorkerWsClosed);
+ }
};
socket.onerror = function(){
@@ -46,7 +54,7 @@ var initSocket = function(uri){
};
self.addEventListener('connect', function (event){
- var port = event.ports[0];
+ let port = event.ports[0];
ports.push(port);
port.addEventListener('message', function (e){
@@ -61,7 +69,7 @@ self.addEventListener('connect', function (event){
socket.send(JSON.stringify(load.data()));
break;
case 'ws:close':
- closeSocket(socket);
+ closeSocket();
break;
case 'ws:notify':
notifications = load.data().status;
@@ -73,18 +81,10 @@ self.addEventListener('connect', function (event){
}, false);
-
// Util ================================================================
-var closeSocket = function(socket){
+var closeSocket = function(){
// only close if active
- console.log(socket.readyState + ' - ' + socket.OPEN);
if(socket.readyState === socket.OPEN){
- // send "close" event before close call
- var msgWorkerWsClosed = new msgWorker('ws:closed');
- for (var i = 0; i < ports.length; i++) {
- ports[i].postMessage(msgWorkerWsClosed);
- }
-
socket.close();
}
};
diff --git a/js/worker/message.js b/js/worker/message.js
index ece4266..34ab7c4 100644
--- a/js/worker/message.js
+++ b/js/worker/message.js
@@ -1,7 +1,24 @@
var msgWorker = class MessageWorker {
+
constructor(cmd){
+ // message properties
this.cmd = cmd;
this.msgBody = null;
+
+ // webSocket props
+ this.ws = {
+ url: undefined,
+ readyState: undefined,
+ };
+ }
+
+ set socket(socket){
+ this.ws.url = socket.url;
+ this.ws.readyState = socket.readyState;
+ }
+
+ get socket(){
+ return this.ws;
}
get command(){
@@ -13,6 +30,7 @@ var msgWorker = class MessageWorker {
if(data){
this.msgBody = data;
}
+
return this.msgBody;
}
};