Front working upload/pay scenario

master
Chakib Benziane 5 years ago
parent 89fc1b2894
commit 93a0260ecc

@ -13,10 +13,10 @@ proxy /api localhost:8880
#log /api stdout
log / stdout
proxy /ws localhost:8880 {
websocket
transparent
}
#proxy /ws localhost:8880 {
# websocket
# transparent
#}
#tls self_signed

@ -19,7 +19,6 @@
"dependencies": {
"babel-polyfill": "^6.26.0",
"qrcode": "^1.3.3",
"socket.io-client": "^1.4.0",
"vue": "^2.6.8",
"vue-hot-reload-api": "^2.3.3"
},

@ -1,24 +1,92 @@
<template>
<div id="app">
<upload></upload>
<pay></pay>
<pay :uploadId="uploadId" :status="status" :invoice="invoice"></pay>
<p v-if="uploadId">upload id: <span class="last-upload">{{ uploadId }}</span></p>
</div>
</template>
<script charset="utf-8">
import Upload from './upload.vue';
import Pay from './pay.vue';
import Upload from './Upload.vue';
import Pay from './Pay.vue';
import GetWorker from './workerInterface.js';
import { lastSession } from './api.js';
const Worker = GetWorker('main');
export default {
name: 'app',
data() {
return {
msg: 'Hello World'
uploadId: 0,
invoice: {},
status: {},
}
},
mounted (){
let self = this;
this.worker = Worker;
// listen to worker events
this.worker.listenTo('upload-invoice', (e) => {
console.log("received invoice ", e.data)
self.invoice = e.data.invoice;
self.uploadId = e.data.upload_id;
self.status = e.data.status;
})
this.worker.listenTo('payment-received', (e)=>{
console.log('pay received', e.data)
this.invoice = e.data.invoice;
this.uploadId = e.data.upload_id;
this.status = e.data.status;
})
// Get last session uploadId if it exists
lastSession()
.then((data) => {
// If upload id is unpaid
if (data.uploadId !== 0){
this.invoice = data.invoice;
this.uploadId = data.uploadId;
this.status = data.status;
if (this.invoice.status === 'unpaid') {
console.log("last session unpaid")
// start waiting for the payment status
this.worker.post({
msg: 'watch-payment',
uploadId: this.uploadId
})
}
}
})
},
components: {
Upload,
Pay,
}
}
</script>
<style>
.unpaid {
background-color: pink;
}
.expired {
background-color: yellow;
}
.paid {
background-color: lightgreen;
}
.last-upload {
background: cyan;
}
</style>

@ -43,10 +43,10 @@ export class WS {
return (ev) => {
console.warn("websocket closed");
//TODO: restore on prod
setTimeout(() =>{
console.log("websocket: trying to reconnect")
instance = new WS()
}, 3000)
//setTimeout(() =>{
//console.log("websocket: trying to reconnect")
//instance = new WS()
//}, 3000)
}
}

@ -4,12 +4,56 @@ import 'babel-polyfill';
const endPoints = {
get upload () {
return '/api/upload'
upload: '/api/upload',
session: '/api/session',
checkstatus: '/api/upload/check'
}
export async function lastSession(){
let req = new Request(endPoints.session, {
method: 'GET',
credentials: 'same-origin'
})
let res = await fetch(req)
.catch((e) => {console.error(e)})
if (!res.ok){
throw(`${res.status}: ` + (await res.json()).error)
}
return res.json()
}
export async function checkUploadStatus(uploadId){
console.log('checking upload status')
let req = new Request(endPoints.checkstatus + '/' + uploadId,{
method: 'GET',
credentials: 'same-origin,'
})
let res = await fetch(req)
.catch((e) => {console.error(e)})
if (!res.ok){
let json = await res.json()
.catch((e)=>{
console.error(res.text())
})
throw(`${res.status}: ` + json.error)
}
return res.json().catch((e)=>{console.error(res.text())})
}
class Upload {
@ -44,12 +88,16 @@ class Upload {
}
return res.json().then(data => {
let { result: { id: id } } = data
let { upload_id: id } = data
this.uploadId = id
return data
})
}
async checkstatus(){
return checkUploadStatus(this.uploadId)
}
async send(){
console.log(`Sending with id ${this.uploadId}`)
@ -79,4 +127,5 @@ class Upload {
export default {
endPoints: endPoints,
Upload: Upload,
checkUploadStatus: checkUploadStatus,
}

@ -3,8 +3,6 @@ import './styles/index.css';
import Vue from 'vue';
import App from './App.vue';
import GetWorker from './workerInterface.js';
import { WS } from './Websocket.js';
window.app = new Vue({

@ -1,73 +0,0 @@
<template>
<div id="payment">
<img v-bind:src="payreqURI" />
<canvas id="canvas" hidden>
</div>
</template>
<script charset="utf-8">
import QRCode from 'qrcode';
import GetWorker from './workerInterface.js';
const Worker = GetWorker('main');
export default {
data() {
return {
uploadId: 0,
invoice: {},
payreqURI: "",
}
},
mounted () {
let self = this
this.worker = Worker;
this.worker.listenTo('upload-invoice', (e) => {
console.log("received invoice ", e.data)
self.invoice = e.data.invoice
self.uploadId = e.data.id
})
},
methods:{
makeLnQR(payreq) {
let canvas = this.$el.querySelector('#canvas')
QRCode.toDataURL(canvas, payreq.toUpperCase(), {
margin: 4,
width: 340,
errorCorrectionLevel: 'H',
type: 'png',
renderOpts:{
quality: 1,
}
})
.then(url => {
this.payreqURI = url;
})
.catch(err =>{
console.error(err);
})
}
},
watch: {
invoice: function(val) {
this.makeLnQR(val.payreq)
}
},
}
</script>
<style>
img{
width: 340px;
height: 340px;
}
</style>

@ -1,60 +0,0 @@
<template>
<div id="upload">
<input v-on:change="fileChange($event)" type="file" multiple />
<p>selected {{fileCount}} files</p>
<ul>
<li v-bind:files="files" v-for="file in files">
{{ file.name }}
<ul>
<li>size: {{ file.size / 1000 }} kB </li>
<li>type: {{ file.type }} </li>
</ul>
</li>
</ul>
</div>
</template>
<script charset="utf-8">
import GetWorker from './workerInterface.js';
const w = GetWorker('main');
//w.listenTo('upload-id', (e) => {
// console.log('vue received upload id ', e.data.id)
// console.log('vue received upload id ', e.data.invoice)
//})
export default {
data(){
return {
fileCount: 0,
files: []
}
},
methods: {
fileChange(event) {
// reset
this.files = []
this.fileCount = event.target.files.length
this.files = event.target.files
w.post({
msg: 'new-upload',
payload: [...this.files],
})
// Get sha256 of files
// for (let file of this.files) {
// w.post({
// msg: 'file-sha256',
// payload: file
// })
// }
}
}
}
</script>

@ -2,9 +2,6 @@
//to keep the UI free
import Api from './api.js'
import { WS } from './Websocket.js';
self.websocket = new WS()
const name = 'main'
@ -65,37 +62,37 @@ async function newUpload(files){
await upload.create()
.then(data => {
// Get the upload id
let { result: { upload_id: id, invoice: invoice } } = data;
// Register to updates on our uploadId from websocket
//self.websocket.listenTo('upload-accepted')
//postMessage({
//msg: 'upload-invoice',
//id: id,
//invoice: resp.result.invoice
//})
//let { result: {
//upload_id: id,
//invoice: invoice ,
//status: status
//} } = data;
// Notify the UI
postMessage({msg: 'upload-invoice', id: id, invoice: invoice})
console.log('notifying')
console.log(Object.assign({msg: 'upload-invoice'}, data) )
postMessage( Object.assign({msg: 'upload-invoice'}, data) )
return data
})
.catch((e)=>{console.error('could not start upload ', e)})
// send the files
await upload.send()
.then(resp =>{
console.log('storage done')
console.log(resp);
})
.catch(err =>{
console.error(err)
})
// Send the files
//upload.send()
//.then(resp =>{
//postMessage({
//msg: 'upload-invoice',
//id: id,
//invoice: resp.result.invoice
//})
//})
//.catch(err =>{
//console.error(err)
//})
// Poll upload state
await upload.checkstatus()
.then(data =>{
postMessage(Object.assign({msg: 'payment-received'}, data));
})
.catch((e)=>{console.error(e)})
}
@ -114,8 +111,22 @@ self.onmessage = e => {
newUpload(e.data.payload)
break;
case 'watch-payment':
console.log('worker watching payment ' + e.data.uploadId);
Api.checkUploadStatus(e.data.uploadId)
.then((data)=>{
self.postMessage(Object.assign({msg: 'payment-received'}, data))
console.log('payment status update !')
console.log(data)
})
break;
default:
console.log(`${name} worker: need {msg: "message type", ... }`)
break;
}

@ -755,11 +755,6 @@ acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.7:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==
after@0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=
ajv@^6.5.5, ajv@^6.9.1:
version "6.10.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
@ -867,11 +862,6 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
arraybuffer.slice@0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca"
integrity sha1-8zshWfBTKj8xB6JywMz70a0peco=
asn1.js@^4.0.0:
version "4.10.1"
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
@ -1469,21 +1459,11 @@ babylon@^6.18.0:
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
backo2@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base64-arraybuffer@0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg=
base64-js@^1.0.2:
version "1.3.0"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
@ -1509,13 +1489,6 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
better-assert@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=
dependencies:
callsite "1.0.0"
binary-extensions@^1.0.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.0.tgz#9523e001306a32444b907423f1de2164222f6ab1"
@ -1526,11 +1499,6 @@ bindings@~1.2.1:
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11"
integrity sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=
blob@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
integrity sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=
bluebird@^3.1.1:
version "3.5.3"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7"
@ -1729,11 +1697,6 @@ caller-path@^2.0.0:
dependencies:
caller-callsite "^2.0.0"
callsite@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA=
callsites@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
@ -1961,26 +1924,11 @@ commander@^2.11.0, commander@^2.19.0, commander@^2.9.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
component-bind@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=
component-emitter@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3"
integrity sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=
component-emitter@1.2.1, component-emitter@^1.2.1:
component-emitter@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
component-inherit@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@ -2331,20 +2279,6 @@ deasync@^0.1.14:
bindings "~1.2.1"
node-addon-api "^1.6.0"
debug@2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
integrity sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=
dependencies:
ms "0.7.1"
debug@2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c"
integrity sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=
dependencies:
ms "0.7.2"
debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@ -2598,36 +2532,6 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
engine.io-client@~1.8.4:
version "1.8.5"
resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.5.tgz#fe7fb60cb0dcf2fa2859489329cb5968dedeb11f"
integrity sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==
dependencies:
component-emitter "1.2.1"
component-inherit "0.0.3"
debug "2.3.3"
engine.io-parser "1.3.2"
has-cors "1.1.0"
indexof "0.0.1"
parsejson "0.0.3"
parseqs "0.0.5"
parseuri "0.0.5"
ws "~1.1.5"
xmlhttprequest-ssl "1.5.3"
yeast "0.1.2"
engine.io-parser@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a"
integrity sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=
dependencies:
after "0.8.2"
arraybuffer.slice "0.0.6"
base64-arraybuffer "0.1.5"
blob "0.0.4"
has-binary "0.1.7"
wtf-8 "1.0.0"
entities@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
@ -3242,18 +3146,6 @@ has-ansi@^2.0.0:
dependencies:
ansi-regex "^2.0.0"
has-binary@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c"
integrity sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=
dependencies:
isarray "0.0.1"
has-cors@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=
has-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
@ -3931,11 +3823,6 @@ json-stringify-safe@~5.0.1:
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
json3@3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=
json5@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
@ -4257,16 +4144,6 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
dependencies:
minimist "0.0.8"
ms@0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
integrity sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=
ms@0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
integrity sha1-riXPJRKziFodldfwN4aNhDESR2U=
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@ -4472,11 +4349,6 @@ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
object-component@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=
object-copy@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
@ -4568,11 +4440,6 @@ optionator@^0.8.1, optionator@^0.8.2:
type-check "~0.3.2"
wordwrap "~1.0.0"
options@>=0.0.5:
version "0.0.6"
resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=
ora@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/ora/-/ora-2.1.0.tgz#6caf2830eb924941861ec53a173799e008b51e5b"
@ -4767,27 +4634,6 @@ parse5@4.0.0:
resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
parsejson@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab"
integrity sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=
dependencies:
better-assert "~1.0.0"
parseqs@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=
dependencies:
better-assert "~1.0.0"
parseuri@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=
dependencies:
better-assert "~1.0.0"
parseurl@~1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
@ -5865,33 +5711,6 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
socket.io-client@^1.4.0:
version "1.7.4"
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.4.tgz#ec9f820356ed99ef6d357f0756d648717bdd4281"
integrity sha1-7J+CA1btme9tNX8HVtZIcXvdQoE=
dependencies:
backo2 "1.0.2"
component-bind "1.0.0"
component-emitter "1.2.1"
debug "2.3.3"
engine.io-client "~1.8.4"
has-binary "0.1.7"
indexof "0.0.1"
object-component "0.0.3"
parseuri "0.0.5"
socket.io-parser "2.3.1"
to-array "0.1.4"
socket.io-parser@2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0"
integrity sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=
dependencies:
component-emitter "1.1.2"
debug "2.2.0"
isarray "0.0.1"
json3 "3.3.2"
source-map-resolve@^0.5.0:
version "0.5.2"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
@ -6239,11 +6058,6 @@ tmp@^0.0.33:
dependencies:
os-tmpdir "~1.0.2"
to-array@0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA=
to-arraybuffer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
@ -6346,11 +6160,6 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
ultron@1.0.x:
version "1.0.2"
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=
uncss@^0.16.2:
version "0.16.2"
resolved "https://registry.yarnpkg.com/uncss/-/uncss-0.16.2.tgz#3b2269c59012da7c66cbe98fbedddeef94f0649c"
@ -6668,29 +6477,11 @@ ws@^5.1.1, ws@^5.2.0:
dependencies:
async-limiter "~1.0.0"
ws@~1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==
dependencies:
options ">=0.0.5"
ultron "1.0.x"
wtf-8@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
integrity sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=
xml-name-validator@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
xmlhttprequest-ssl@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"
integrity sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=
xtend@^4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
@ -6736,8 +6527,3 @@ yargs@^12.0.5:
which-module "^2.0.0"
y18n "^3.2.1 || ^4.0.0"
yargs-parser "^11.1.1"
yeast@0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=

@ -19,10 +19,10 @@ import (
const (
// Time allowed to write message to peer
writeWait = 30 * time.Second
writeWait = 10 * time.Second
// Time allowed to read the next pong message from the client.
pongWait = 60 * time.Second
pongWait = 30 * time.Second
// Send pings to client with this period. Must be less than pongWait.
pingPeriod = (pongWait * 9) / 10

Loading…
Cancel
Save