How to broadcast audio *from* my website to clients - web-services

I want to have a button on a (private) webpage on my site that, when clicked, starts an audio stream from the computer of the user who pressed the button.
Then, I want that stream to be accessible on another webpage on my site.
I'm aware of YouTube, Periscope, Spreaker, and others, but it is my understanding that the broadcast, using these services, is initiated through their website or apps. I'm ok with the broadcaster having to download a plugin on-the-fly (that is, after he has pressed the button), but I want to avoid the broadcaster having to install software, or having to use an alternative website.
So, what I'm looking for is a service/API that somehow takes a live audio recording within a browser, and repackages that as a live feed, to be used in an (embedded) player, elsewhere.
I'm aware of software like Kurento, but I do not want to maintain the infrastructure myself. I just want the service/API to take care of that.
I'm also aware of join.me's API, but it's my understanding that the broadcaster still needs to install software to broadcast.
This service does not have to be free. And this service should (of course) not use Flash.
Does this exist?

Related

How to properly notify client of changed status?

I am writing a (Django-based) website which is working just fine. It displays a list of sensors and their status. If a new sensor is attached, the user needs to wait for a certain amount of time until it is warmed up and ready to use. Also, when the sensors are updated (which the user can trigger, but can also be done automatically by the system) - the user needs to wait.
On the server side I have all signals/Status updates/whatsoever available. Now I want to create an overlay for the current webpage where the statuschange is displayed for x seconds and userinput is disabled.
I have no clue what technology to use. I could frequently ask for updates client -> server but that doesn't feel like the correct way. Any suggestions on what to search for?
No code here because the answer is probably independed of my website code
Standard solution is to use Ajax (JavaScript) or similar to get state from your backend on specific intervals, that is the approach you're mentioning.
You can also "push" changes from your backend to frontend using WebSockets but that is a bit more complex. A popular framework is socket.io, I recommend you take a look at it.

Appropriate architecture for event logging in a game

I'm trying to modify a game engine so it records events (like key presses), and store these in a MySQL database on a remote server. The game engine is written in C++, and I currently have the following straightforward architecture, using mysql++ to directly INSERTrecords into appropriate databases:
Unfortunately, there's a very large overhead when connecting to the MySQL server, and the game stops for a significant amount of time. Pushing a batch of Xs worth of events to the server causes a significant delay in gameplay (60s worth of events can take 12s to synchronise). There are also apparently security concerns with leaving the MySQL port accessible publicly.
I was considering an alternative option, instead sending commands to the server, which can interact with the database in its own time:
Here the game would only send the necessary information (e.g. the table to update and the data to insert). I'm not sure whether the speed increase would be sufficient, or what system would be appropriate for managing the commands sent from the game.
Someone else suggested Log4j, but obviously I need a C++ solution. Is there an appropriate existing framework for accomplishing what I want?
Most applications gathering user-interface interaction data (in your case keystrokes) put it into a local file of some sort.
Then at an appropriate time (for example at the end of the game, or the beginning of another game), they POST that file, often in compressed form, to a publicly accessible web server. The software on the web server decompresses the data and loads it into the analytics system (the MySQL server in your case) for processing.
So, I suggest the following.
stop making your MySQL server's port available to people you don't know and trust.
get your game to gather keystrokes locally somehow.
get it to upload that data in big bunches when your game is not in realtime mode.
write a web service to receive and interpret these files.
That way you'll build a more secure analytics system and a more responsive game.

MiFare Card Reader into Web Application Form

I have a web application where I would like the card reader to scan our school's student ID cards and come out with their ID number. Our original system for managing this with the relevant card readers already has it preset to work, however, now I am trying to use the card reader for web browser forms.
I have coded my pages using Classic ASP and have the data linked to a MS Access Database. The card reader I am using is linked to a program application called Campus Online which manages our student ID cards and data. I am using an ACR122U card reader which works perfectly with our Campus Database.
Simply put, I want to be able to first open the homepage where the scan would need to take place. Scan the student ID card with the card reader in which the desired data (Student ID) will appear in the form field and submit. I've been searching for a couple of days now for a solution but there doesn't seem to be any clear answers to this. I am aware of the post at: How to read a mifare 1k card through ACR122U NFC Tag reader connected to local machine in a web application but it has clearly not answered my question on how to integrate the card reader with my web pages. It only shows demos that do not work with my card reader.
If there is any reference of code, online services that are available to do this or a method on how to integrate the ACR122U card reader with web pages, that would be best.
Thanks for the assistance.
You probably wanting to look into using ACR122U NFC Contactless Smart Card Reader Software Development Kit
How ever you look at this you will have to build some client application to facilitate the action of detecting the card, reading it and then outputting the Student ID to the Web Application window. There is no quick fix I'm afraid.
Luckily your card reader is PC/SC compliant which will make it easier to write something that can interface in a standard way to facilitate your required function. You want to look at using the winscard.dll to use the PC/SC functions built into the Windows OS.
Summary of what you need
Build an application (C++, .Net, Java or some other mainstream programming language that can access the PC/SC APIs in Windows) to do the following;
Detect the card reader.
Detect the card.
Detect the web application window (be it a browser window, custom app etc).
Read the Student ID (depending on whether you are talking about the UID of the card, you may need to perform some key based authentication of the card).
Pass-through the value (active window and injecting standard output).
Well this is quite old, but i was strugling with figuring it out too so I've decided to create some sort of "deamon" in .NET - you can create service, small app running in the background.
Then i've connected it to the websocket, and subscribed socket messages in my web application. now when i use card in my reader, the deamon reads it, and sens message to web socket. then web socket sends it to the app and voila

Can Web Applications detect local printers?

I was wondering if it is possible for a Web Application (hosted on a remote server) able to detect printers connected to a host(the one accessing the Web Application)?
Also, is it also possible to be able to send print-jobs (mainly images) to the host's printer?
For instance, assume you have a local WPF application (Windows Presentation Foundation, C#) running on the desktop.
To print an image:
Select an Image on the WPF application (loaded from a directory on the local harddisk)
Click the "Print Button"
This will run this line of C# code:
e.Graphics.DrawImage(image, x-coordinate, y-coordinate, imageWidth, imageHeight);
And it will send a print job of the image to the default printer of the local computer.
So now, instead of a WPF application, you have a Web Application. The user will:
Type in the URL of the Web Application
The Web-App will load a page similar to the WPF application
The Web-App will display images that are loaded from say, a database.
User select image he wants to print
User clicks "Print Image"
However, in order to Print the image, I would imagine the Web-App would need to recognise the printers the user has on his local computer, and be able to communicate with the printer.
Of course, the Web-App does not need to be in .NET. I was just using WPF/C# as an example.
Bluntly, the answer is no. Server-side code can't talk with client-side resources in that manner.
A possible solution might be to embed some client-side component into your web app which does what you
want, such as a Java applet or Silverlight item. I don't know off the top of my head whether they're capable of printing, but it might be an option worth investigating.
However, I would suggest the best way to handle it (if your use-case allows), is to serve up something capable of printing via native browser methods. You are able to serve a stylesheet which applies to printing specifically using the media="print" attribute on your link element. If that remains too imprecise (you'd have no control over the browser's paper size, margins, headers/footers etc), perhaps another option might be to serve a print-specific file such as a PDF. Ultimately though, what you are asking is not possible and it is a case of finding another way to fulfil your requirements.
I have a similar issue, which I haven't programmed, but, I have found that HP printers can receive print jobs, through the HP network. If you are WiFi enabled, there should be a way to email the print job to the printer. I'm still researching this. But, I have a friend who did something similar using AWS.
Been a while, but I have learned that HP printers can be WiFi enabled. Which means, they get an email address and can be printed to, at that address, through the internet, if they are connected to a WiFi net connected to the internet. The email goes through the internet directly to the printer, where it is then printed. So, you can email a print doc.

Do I want an embedded web-server, or what?

So, someone want me to hack some code for him. He has a 42" TFT display on which he will display some application/business related data.
However, 75% of the screen real estate is unused, so he wants to fill it with "TV/adverts/flash/you know, that kind of thing... web based....".
Any advice? Do I want an embedded web-server? If so, which? (he wants free & open source, or as cheap as possible) Do I display it in a browser? (duh! probably, dude) But I don't want/need a menu, address bar, toolbar, etc - it should be full screen (does that mean "kiosk mode"?).
Sorry, folks, the requirements are not clear, but I hope that you can guess what he probably means (he is not very techie). How should I proceed with this? Thanks.
I am working on such a display system, although ours already quite evolved, with support for multi-screen, multi-user and a lot more.
A few hints :
We use firefox with the "full fullscreen" extensiton (https://addons.mozilla.org/fr/firefox/addon/1568) that allows to not display any menu bar, status bar etc. and to automatically start Firefox in that mode. Then you just need a startup script to launch firefox specifying the right URL when the machine is started.
Our system is web based, but as a multiscreen system it has one server and several client PCs connected to the server via HTTP, and each one to a TFT screen via VGA cables. If you have only one screen you could install the browser and the web server on the same machine. Only restriction : we use wake-on-lan from the server to the clients to automatically start the display every morning. This will not be possible with a single machine system !
To give you some ideas, the display mechanism basically works like that : first, the browser loads a html page with lots of javascript (that javascript constitutes what we will call the "client application".) This client application is written using the Prototype.js library (just an indication, there are many other possibilities). Then the client application asks the server for the content to be displayed. That content is passed as a JSON stream representing a playlist of objects (images, videos, text news, etc.). The client app displays each object in the playlist sequentially. The objects stay displayed for a specific duration (lots of setTimeout in the code). The transitions use effects from the Scriptaculous library (fade-in, fade-out...). When all objects have been shown, the client asks the server again for the playlist (in case changes have been made), and the process starts again. There is actually never a full reload of the page.
Then we also have a multi-content mode, where the screen is separated in various zones that are updated separately.
For one machine and a realtively static system (i.e. no GUI to add content), maybe you could implement that mechanism in a local site accessed via file://... The whole "intelligence" of the system would be in the javascript. That would save you the server part. I see one possible restriction : I think flash can't play video files from the client's machine (security restriction) so check this if you plan to use flash videos.
Well, I hope these few ideas can help you. Good luck !
Get one these
They offer a VESA mount for it I think if the screen your using supports that.
Full screen firefox would be one option.
A more flexible option would be a full screen QT app written in the language of your choice using the webkit widget for display, this would likely make flash content more difficult.
As for the content, i would put a LAMP setup on the fit pc. Build the web page using whatever feeds you want and just display the web page aka http://localhost
Alternatively you could host the "web parts" of the display on a standard web hosting server and display the data coming in on RS-422 in a separate QT widget.