WebRTC and Django - django

I want to be able to use a data channel for the client connecting to my django site in order to send data to the django server and have it process that data (as opposed to using ajax for instance). I tried searching the web for the but could't find anything usefull. Is it possible to do what i'm asking?

I realize this is a fairly old question, but there's misinformation in the reply above. WebRTC is a peer to peer protocol, not specifically a browser to browser protocol. In other words, the fact that a browser is a WebRTC peer is an implementation detail, not a standards requirement.
The IETF requirements document, section 3.4.3 specifically gives an example of a server-based peer for a video conferencing use case. Having said that, it's a nontrivial project; look at Asterisk's rtcweb support or Erizo for examples in the wild.

Related

What is the tech stack for live streaming sites like Twitch? Especially the network protocols?

What should I do if I want to embed a live streaming function in my website? There seems to be no solution via Google.
Unless you intend to use some sort of browser plugin, embedding video on a website typically entails the <video> tag. So, most likely, support for livestreaming would entail a networking method of your choosing when recording the live stream (UDP perhaps?) to your server, which would -- in turn -- transcode the data into a format that can be consumed via the <video> tag on the browser. If you only need to livestream between two browsers (like in video chat), then WebRTC is probably your solution.
With the <video> tag, Media Source Extensions makes it possible for the client/server to highly customize the transport of the media streams. For example, a custom MediaSource could send the media using web sockets if it so chose, for example (instead of as an HTTP stream). Because MediaSource extensions allow for such a wide degree of customization, it's really not possible to give one definitive answer regarding the protocols used to communicate with the browser.
And whereas the browser<->server protocols are easily discoverable (just open the developer tools when visiting one of these sites), the underlying server<->server protocols are not.

HTML5 desktop application and C++ business logic

I have a question related to HTML5 as a desktop application replacement.
At present time my company developed a WinCE application in C++ language with a GUI in C++, that receives and sends messages to the Business Logic layer via sockets (C++ Windows App).
We would like to port this SW on Linux but to realize a cross compilable SW.
The whole application run on a single embedded PC (both BL and GUI) .
About presentation layer we was investigating the HTML5 possible solution, however I have some doubts.
In fact I read that some browsers supports the feature of web sockets, but it seems that this kind of sockets aren't generic TCP/UDP sockets, but are further specialized and their implementation is provided in server side classes, like Socket.IO (Java e node.js) and Jetty (Java).
So is there someone that can provide me some feedback about how/if it is possible to use HTML5 as presentation layer and send/receive updates from/to GUI via sockets to a application running on the same host machine as the web page?
I hope this question fulfill the requirements of the stackexchange "style" and rules, I made my best to be as clear as possible.
Best regards.
Giovanni Parodi
Nothing stops you from having your frontend and backend on same host talking via WebSocket over loopback.
I assume you are unwilling to port your backend to a different language, so you will need a C++ WebSocket implementation. I haven't followed what Microsoft provides in this area, but when using Boost/ASIO, I'd recommend to look at WebSocket++.
Further, WebSocket is still relatively low-level (send message bidirectionally). So you might want something higher-level. You might want to look at WAMP (The WebSocket Application Messaging Protocol), which provides you with RPC and PubSub messaging patterns. Using this, you can plug/exchange your frontend (e.g. have a native Android) talking to same, unchanged backend - same for backend. Decoupling.
There are clients and router(read: server) implementations for various languages.
Btw: WebSocket is supported by Chrome, Firefox and IE (beginning with version 10) -- and other browsers.
I'd need to know more about the specific side-conditions and requirements to give more hints ..
Disclosure: I am original author of Autobahn, WAMP and work for Tavendo.

How github auto updating comments work?

As mentioned here
https://github.com/blog/1174-auto-updating-comments
What is the technology behind this? If I've to add this feature in a Django powered web app, what should I use and study?
Looking at network tab it looks like they (at least with chrome) are using HTML5 Server Sent Events.
So practically the browser subscribes to a event stream and the web server just sends messages back.
I am not an expert but I guess on the server side you need to be able to keep an open connection that streams the events to the client.
I found an implementation of SSE for python here: https://github.com/niwibe/sse and a django implementation on top of that: https://github.com/niwibe/django-sse
I did not use them (yet) on any production so I suggest them only as study / poc material :)

communication between javascript and C++ code through web sockets?

I have javascript (client - executed through node.js) and C++ (server) code running on Ubuntu (Linux) and I want this client-server to communicate with each other. Can somebody tell me how I can make C++ code work like a server or client using web socket? Basically, I want javascript code to send some data to C++ code, the C++ code will process on the data and return the result back to javascript code. I'm not sure if I this communication between javascript and C++ code can happen with out web socket. Any pointers in this direction would be of great help!
Thanks,
pats
I very recently started working on a C++ websocket library: https://github.com/szmoore/foxbox
An example of a websocket server is: https://github.com/szmoore/foxbox/blob/master/examples/wsserver.cpp
I also have an example of a JavaScript client.
Warnings: The library doesn't support TLS, is based around POSIX sockets, and is still in development and probably horribly insecure.
So, whilst shamelessly promoting my own library I will also point you at libwebsockets, a C library suggested in answer to this question: https://stackoverflow.com/questions/3916217/standalone-c-or-c-websocket-server-library?lq=1
You have several choices. I am assuming your C++ server already has a websocket server running on it but if not, get Mongoose or the non-GPL fork Civetweb. Both are tiny bits of c code you build into your C++ program to add webserver,including websockets, functionality.
In fact, civetweb comes with a websocket example.
However, you do not need a websocket, just an ordinary socket should do. You'll probably want to send the data in JSON format to makeit easy to consume by the javascript code.
I know this question was asked a LOOONG time ago, but here is a gist of my set up that allows to have a communication between my c++ and Javascript apps; if anyone stumbles on this question:
I use TCP/IP connections to set up communication between a C++ app and a Javascript (Typescript) app. ZeroMQ (0mq) library is perfect for that. On c++ side you have libs like zmqpp and on the JS side you have zeromq.js.
After the data is received in JS land, you can use Socket.IO if you would like to have that streaming data available in a browser. Generally, you would have to forward the data stream off 0mq through Socket.IO and then access it on the browser side.
Bonus: make the data format using Protobuf.
On the Javascript side you will probably want to use an XmlHttpRequest. This will cause the javascript to post an HTTP(s) request to your server. For the C++ server side, you can look at something like Pion for an embeddable HTTP server or if you want to link into a full web server like Apache, you can use Fast CGI to plug your server code into Apache.

user browse web site history data

I would like to list user connect web site link,get all history data
where can i got those data.
thanks
Well, since I'm new I'll just have to post as broad an answer as I can for your vague question.
If your goal is to get a users recent browsing history, you should just be able to look up the places where all of the mainstream browsers store their history data. I highly doubt the devs would put such insensitive information under encryption, so this shouldn't be too hard. Browsers that you should take in to consideration include Internet Explorer, Firefox, Opera, Chrome, Netscape Navigator, and all of the other Mozilla spinoffs, such as Sea Monkey.
If your goal is to establish a connection to a web server, and then download a list of data provided by the server, there is a lot of setup involved. First, you need a server. You can use something like Apache, and use the HTTP protocol for all data transmission, or if you're feeling brave, you could whip up a server of your own design. Second, you need a way to connect to this server. Since it appears you're using visual C++, WinSock would be the way to do this. There are plenty of tutorials online for WinSock, just Google away.
I hope this helps you, and best of luck to your endeavor.
As your question is tagged "C++", I assume that your program works on local computer.
Each browser has its own format of "history storage". You will have to work on different formats if you are targeting the major browsers, e.g. Firefox, Chrome, IE, etc.
For example, Firefox and Chrome stores its history in a SQLite database, while IE stores in a binary file named "index.dat".
Here are some places to start:
Firefox :
http://kb.mozillazine.org/Places.sqlite
https://developer.mozilla.org/en/The_Places_database
IE :
http://www.forensicswiki.org/wiki/Internet_Explorer_History_File_Format