I've taken the benchmarks from Matthew Rothenberg's phoenix-showdown, updated Phoenix to 0.13.1 and ran the tests on the most powerful machines available at Rackspace.
| Framework | Throughput (req/s) | Latency (ms) | Consistency (σ ms) |
|---|
| // Load the TCP Library | |
| net = require('net'); | |
| // Keep track of the chat clients | |
| var clients = []; | |
| // Start a TCP Server | |
| net.createServer(function (socket) { | |
| // Identify this client |
I've taken the benchmarks from Matthew Rothenberg's phoenix-showdown, updated Phoenix to 0.13.1 and ran the tests on the most powerful machines available at Rackspace.
| Framework | Throughput (req/s) | Latency (ms) | Consistency (σ ms) |
|---|
| global | |
| daemon | |
| defaults | |
| mode http | |
| timeout connect 86400000 | |
| timeout server 86400000 | |
| timeout client 86400000 | |
| timeout check 5s |
| upstream haproxy { | |
| server 127.0.0.1:9000; | |
| } | |
| upstream stats { | |
| server 127.0.0.1:9999; | |
| } | |
| server { | |
| listen 80; ## listen for ipv4; this line is default and implied |
| # Sticky session module for nginx | |
| # https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/ | |
| # nginx configure command: ./configure --with-http_ssl_module --add-module=../nginx-sticky-module-ng/ --sbin-path=/usr/local/sbin --with-http_gzip_static_module | |
| upstream vida_node_server { | |
| sticky path=/; | |
| server 127.0.0.1:3000 max_fails=3 fail_timeout=30s; | |
| server [server2]:3000 max_fails=3 fail_timeout=30s; | |
| } |
by alexander white ©
| <canvas id='c'></canvas> |
| global | |
| #debug | |
| #daemon | |
| log 127.0.0.1 local0 | |
| defaults | |
| log global | |
| option httplog | |
| frontend unsecured *:80 |
With the scarecity of IPv4 addresses, and IPv6 still not available at large, NAT traversal is becoming a necessity. Especially with the generalisation of Carrier-grade NATs that you can find on mobile connections. Even with IPv6 you may suffer NAT66. Imagine your mobile device that gets only a single Ipv6 address, and you want to share it on your computer.
The solution might be in a decentralized protocol for address attribution such
| 'use strict'; | |
| import {Actions} from "react-native-router-flux"; | |
| // var Sinch = require('./Sinch-javascript/sinch-rtc') | |
| import Camera from 'react-native-camera'; | |
| var GiftedMessenger = require('react-native-gifted-messenger'); | |
| var GiftedSpinner = require('react-native-gifted-spinner'); | |
| var React = require('react-native'); | |
| const timer = require('react-native-timer'); | |
| var { | |
| AppRegistry, |