4 ms·
Also take a look at the network "protocol": JSON over HTTP longpolling, requiring usually a separate socket for each batch of messages sent or received (unless
by kuschku 9y ago
Also take a look at the network "protocol": JSON over HTTP longpolling, requiring usually a separate socket for each batch of messages sent or received (unless HTTP/2 is available, then it’s a bit less expensive, still has a massive overhead).
Matrix has so much potential – someday, when it’s built on technologically more ideal foundations.
Python2.7 you’ll barely notice, but the network overhead of the Matrix protocol becomes heavily noticeable by the end user (especially if your cell phone’s data plan runs out, and you’re stuck on 64kbps until the end of the month, then Matrix in larger rooms just becomes impossible)
- vbezhenar 9y agoI think HTTP Keep Alive mechanism should help with sockets and it does not require HTTP/2.
- amandine 9y agoThe spec only states the use of JSON over HTTP as a baseline so anyone is welcome to implement more efficient transports like CBOR/COAP or MQTT or whatever :) But yes the goal of the reference implementations was to showcase the simplest transport: one PUT to send and one GET to retrieve it. Meanwhile we’re working on improving the performance of the servers with some rather nice breakthroughs on the horizon.
- kuschku 9y agoAs I said, the potential is there, the current implementations just aren’t there yet. In a few years it might be entirely different. And I’m not sure PUT and GET are the simplest solution, I’d think a simple socket over which messages are transmitted in both directions would be simpler than implementing an entire HTTP stack.
- lpghatguy 9y agoBeing able to implement a client that runs in a browser (and can thus only deal in terms of HTTP) is very valuable, and one reason to claim that the simplest solution is HTTP PUT and GET.
- zAy0LfpBZLC8mAC 9y agoAnd that is precisely why it is an idiotic design decision. HTTP is extremely complex (well, and Matrix doesn't actually use HTTP, they just claim they do, but as usual noone reads the specs, everyone just builds crap based on what they think the spec says, because the spec is too complicated), and as such is an absolute dead end if your goal supposedly is to build something secure.