Websocket Connection working.
This commit is contained in:
parent
eb17def07a
commit
1cd1effb98
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "Launch Program",
|
||||||
|
"program": "${workspaceFolder}\\app.js"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,2 +1,2 @@
|
||||||
# node-polyglot
|
# node-polyglot
|
||||||
Rails server to run alongside betriceo/polyglot
|
Rails server to run alongside https://github.com/beatriceo/polyglot
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
require('dotenv').config();
|
||||||
|
const WebSocket = require('ws');
|
||||||
|
|
||||||
|
class ActionCable {
|
||||||
|
constructor(url, channel) {
|
||||||
|
this.url = url;
|
||||||
|
this.channel = channel;
|
||||||
|
this.connected = false;
|
||||||
|
|
||||||
|
this.io = new WebSocket(url, ['actioncable-v1-json', 'actioncable-unsupported']);
|
||||||
|
|
||||||
|
this.setUpEventListeners();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
setUpEventListeners() {
|
||||||
|
this.io.on('open', (msg) => {
|
||||||
|
console.log('Connected to ' + this.url)
|
||||||
|
this.connected = true;
|
||||||
|
this.subscribe();
|
||||||
|
})
|
||||||
|
|
||||||
|
this.io.on('close', (msg) => {
|
||||||
|
console.log("Disconnected from ActionCable Server");
|
||||||
|
this.connected = false;
|
||||||
|
})
|
||||||
|
|
||||||
|
this.io.on('message', (msg) => {
|
||||||
|
console.log(msg);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
send(command, identifier) {
|
||||||
|
this.io.send(JSON.stringify({command, identifier}));
|
||||||
|
}
|
||||||
|
|
||||||
|
subscribe() {
|
||||||
|
this.io.send(JSON.stringify(
|
||||||
|
{
|
||||||
|
command: "subscribe", identifier: JSON.stringify({channel: this.channel})
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {
|
||||||
|
* "identifier": "{\"channel\":\"VideoSessionChannel\"}","message":{"type":"JOIN_ROOM","from":"9921"}}
|
||||||
|
*/
|
||||||
|
|
||||||
|
class WebRTC {
|
||||||
|
constructor(username) {
|
||||||
|
this.username = "NodeServer";
|
||||||
|
}
|
||||||
|
|
||||||
|
handleJoin(data) {
|
||||||
|
data = {
|
||||||
|
identifier: "{\"channel\":\"VideoSessionChannel\"}",
|
||||||
|
message: {
|
||||||
|
type: "JOIN_ROOM",
|
||||||
|
from: "9921"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
const ac = new ActionCable('ws://0.0.0.0:3000/cable', process.env.DEFAULT_CHANNEL);
|
|
@ -4,7 +4,8 @@
|
||||||
"description": "Rails server to run alongside https://github.com/beatriceo/polyglot",
|
"description": "Rails server to run alongside https://github.com/beatriceo/polyglot",
|
||||||
"main": "app.js",
|
"main": "app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"start": "node app.js"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -18,6 +19,8 @@
|
||||||
"homepage": "https://github.com/Paoda/node-polyglot#readme",
|
"homepage": "https://github.com/Paoda/node-polyglot#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@google-cloud/speech": "^2.0.0",
|
"@google-cloud/speech": "^2.0.0",
|
||||||
"@google-cloud/translate": "^1.1.0"
|
"@google-cloud/translate": "^1.1.0",
|
||||||
|
"dotenv": "^6.0.0",
|
||||||
|
"ws": "^6.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
14
yarn.lock
14
yarn.lock
|
@ -206,6 +206,10 @@ assign-symbols@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
|
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
|
||||||
|
|
||||||
|
async-limiter@~1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
|
||||||
|
|
||||||
async@^2.3.0, async@^2.4.0:
|
async@^2.3.0, async@^2.4.0:
|
||||||
version "2.6.1"
|
version "2.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
|
resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
|
||||||
|
@ -490,6 +494,10 @@ dir-glob@^2.0.0:
|
||||||
arrify "^1.0.1"
|
arrify "^1.0.1"
|
||||||
path-type "^3.0.0"
|
path-type "^3.0.0"
|
||||||
|
|
||||||
|
dotenv@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.0.0.tgz#24e37c041741c5f4b25324958ebbc34bca965935"
|
||||||
|
|
||||||
duplexify@^3.5.0, duplexify@^3.6.0:
|
duplexify@^3.5.0, duplexify@^3.6.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410"
|
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410"
|
||||||
|
@ -2012,6 +2020,12 @@ wrappy@1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||||
|
|
||||||
|
ws@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/ws/-/ws-6.0.0.tgz#eaa494aded00ac4289d455bac8d84c7c651cef35"
|
||||||
|
dependencies:
|
||||||
|
async-limiter "~1.0.0"
|
||||||
|
|
||||||
xtend@^4.0.0, xtend@~4.0.1:
|
xtend@^4.0.0, xtend@~4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||||
|
|
Reference in New Issue