Skip to content

Commit 25a4a41

Browse files
committed
Some refactoring ongoing
1 parent 4ab2c4f commit 25a4a41

File tree

8 files changed

+985
-35
lines changed

8 files changed

+985
-35
lines changed

.babelrc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
{
2+
"presets": [
3+
"@babel/preset-env"
4+
],
25
"plugins": [
3-
"@babel/plugin-transform-async-to-generator"
6+
"@babel/plugin-transform-async-to-generator",
7+
"@babel/plugin-proposal-class-properties"
48
]
59
}

package-lock.json

Lines changed: 957 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,8 @@
33
"version": "1.0.0",
44
"description": "This is an experiment to compare HTTP vs WebSockets performance using `Nodejs client` <==> `Python server`",
55
"scripts": {
6-
"fetch-flask": "PORT=5000 SERVER=flask babel-node src/clients/fetch_client.js",
7-
"axios-flask": "PORT=5000 SERVER=flask babel-node src/clients/axios_client.js",
8-
"flask": "python src/servers/flask_server.py --port 5000",
9-
"fetch-fastapi": "PORT=5001 SERVER=fastapi babel-node src/clients/fetch_client.js",
10-
"axios-fastapi": "PORT=5001 SERVER=fastapi babel-node src/clients/axios_client.js",
11-
"fastapi": "python src/servers/fastapi_server.py --port 5001",
12-
"websocket-fastapi-websocket": "PORT=5002 SERVER=fastapi-websocket babel-node src/clients/websocket_client.js",
13-
"fastapi-websocket": "python src/servers/fastapi-websocket_server.py --port 5002",
14-
"socketio-flask-socketio": "PORT=5003 SERVER=flask-socketio babel-node src/clients/socketio_client.js",
15-
"flask-socketio": "python src/servers/flask-socketio_server.py --port 5003",
16-
"ws-eventlet": "PORT=5004 SERVER=eventlet babel-node src/clients/ws_client.js",
17-
"websocket-eventlet": "PORT=5004 SERVER=eventlet babel-node src/clients/websocket_client.js",
18-
"eventlet": "python src/servers/eventlet_server.py --port 5004",
19-
"ws-websockets": "PORT=5005 SERVER=websockets babel-node src/clients/ws_client.js",
20-
"websocket-websockets": "PORT=5005 SERVER=websockets babel-node src/clients/websocket_client.js",
21-
"websockets": "python src/servers/websockets_server.py --port 5005",
22-
"socketio-socketio": "PORT=5006 SERVER=socketio babel-node src/clients/socketio_client.js",
23-
"socketio": "python src/servers/socketio_server.py --port 5006"
6+
"axios-client": "babel-node src/clients/http/axios_client.js",
7+
"fetch-client": "babel-node src/clients/http/fetch_client.js"
248
},
259
"repository": {
2610
"type": "git",
@@ -33,6 +17,7 @@
3317
},
3418
"homepage": "https://github.com/jscriptcoder/HTTP-vs-WebSockets-performance#readme",
3519
"dependencies": {
20+
"@stomp/stompjs": "^5.4.4",
3621
"axios": "^0.20.0",
3722
"chalk": "^4.1.0",
3823
"node-fetch": "^2.6.1",
@@ -44,6 +29,9 @@
4429
"devDependencies": {
4530
"@babel/core": "^7.11.6",
4631
"@babel/node": "^7.10.5",
47-
"@babel/plugin-transform-async-to-generator": "^7.10.4"
32+
"@babel/plugin-proposal-class-properties": "^7.10.4",
33+
"@babel/plugin-transform-async-to-generator": "^7.10.4",
34+
"@babel/polyfill": "^7.11.5",
35+
"@babel/preset-env": "^7.11.5"
4836
}
4937
}

src/clients/http/axios_client.js

100644100755
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
#!/usr/bin/env node
2-
3-
const axios = require('axios')
4-
const { host, port, serverUrl, iters } = require('../config')
5-
const PerformanceTimer = require('../PerformanceTimer')
1+
import axios from 'axios'
2+
import { host, port, serverUrl, iters } from '../config'
3+
import PerformanceTimer from '../PerformanceTimer'
64

75
export async function runTest() {
86
console.log(`Axios client connecting to http://${host}:${port}`)
@@ -14,11 +12,12 @@ export async function runTest() {
1412
timer.start()
1513

1614
// async loop
15+
let i = iters
1716
await (async function asyncLoop() {
1817
const response = await axios.post(serverUrl, { name: 'Fran' })
1918
const { hello } = response.data
2019

21-
if (--iters === 0) return
20+
if (--i === 0) return
2221
await asyncLoop()
2322
})()
2423

src/clients/http/fetch_client.js

100644100755
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
#!/usr/bin/env node
2-
3-
const fetch = require('node-fetch')
4-
const { host, port, serverUrl, iters } = require('../config')
5-
const PerformanceTimer = require('../PerformanceTimer')
1+
import fetch from 'node-fetch'
2+
import { host, port, serverUrl, iters } from '../config'
3+
import PerformanceTimer from '../PerformanceTimer'
64

75
const requestInit = {
86
method: 'POST',
@@ -20,12 +18,13 @@ export async function runTest() {
2018
timer.start()
2119

2220
// async loop
21+
let i = iters
2322
await (async function asyncLoop() {
2423
const response = await fetch(serverUrl, requestInit)
2524
const data = await response.json()
2625
const { hello } = data
2726

28-
if (--iters === 0) return
27+
if (--i === 0) return
2928
await asyncLoop()
3029
})()
3130

File renamed without changes.

src/servers/config.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
parser.add_argument('-l', '--host', default='0.0.0.0')
55
parser.add_argument('-p', '--port', default=5000, type=int)
66

7-
args = parser.parse_args()
7+
args = parser.parse_args()
8+
host, port = args.host, args.port

src/servers/http/flask_server.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/usr/bin/env python
22

33
from flask import Flask, request, jsonify
4+
from src.servers.config import host, port
45
import logging
5-
from servers.config import host, port
66

77
log = logging.getLogger('werkzeug')
88
log.setLevel(logging.ERROR)
@@ -11,7 +11,9 @@
1111

1212
@app.route('/hello', methods=['POST'])
1313
def hello():
14-
return jsonify(hello = request.get_json().get('name'))
14+
json = request.get_json()
15+
name = json.get('name')
16+
return jsonify(hello = name)
1517

1618
def run_test():
1719
print('Server starting at ' + 'http://{}:{}'.format(host, port))

0 commit comments

Comments
 (0)