Marthe-Ma Skrevet 15. januar 2014 Del Skrevet 15. januar 2014 Hei Jeg har et prosjekt på gang hvor jeg skal lage følgende nettside: Vise oppdatert informasjon om tidssynkroniseringen til en rekke NTP servere. Jeg ønsker å vise dette via en nettside som oppdaterer seg hvert 10 sekund. Jeg har pr. dags dato en fungerende løsning (http://imgur.com/7w4JgFT) som fungerer som følger: Python henter informasjon om NTP status og lagrer i en fil lokalt på maskinen. Et javaprogram kjører for å lese ut denne informasjonen og utføre noen kontrollrutiner. Javarutinene implementeres i en nettside som en java applet og er laget i Eclipse. Nettsiden må derfor kjøres på en tomcat server. Denne løsningen er delvis utviklet av meg selv, men jeg lurer på om det er annen måte å løse dette på som ikke krever en tomcat server? Hvis dere skulle laget en nettside som viser oppdatert informasjon fra en lokal fil som oppdaterer seg hvert 10 sekund, hvordan ville dere løst denne utfordringen? Lenke til kommentar
Karl Skapeland Skrevet 15. januar 2014 Del Skrevet 15. januar 2014 (endret) En slik løsning er svært enkel å lage i Node.js index.js: var app = require('http').createServer(handler), io = require('socket.io').listen(app), fs = require('fs'); app.listen(8080); function handler (req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200); res.end(data); }); } io.sockets.on('connection', function (socket) { fs.watchFile('/tmp/test', function(curr,prev) { socket.emit('test', { current_mtime: curr.mtime, prev_mtime: prev.mtime }); }); }); index.html: <!DOCTYPE html> <html> <head> <title>Test</title> </head> <body> <script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect('http://127.0.0.1:8080'); socket.on('test', function (data) { console.log(data); }); </script> </body> </html> package.json: { "name": "watch", "version": "0.0.1", "main": "index.js", "dependencies": { "socket.io": "*" } } Plasser alle filene i en katalog, og kjør: npm install node index.js Endret 15. januar 2014 av Karl Skapeland Lenke til kommentar
Sokkalf™ Skrevet 15. januar 2014 Del Skrevet 15. januar 2014 Tja, siden du allerede har litt i Python, går det vel an å lage resten i Python også. Gir heller ikke helt mening for meg hvorfor et java applet (som kjører på klientsiden) trenger å hostes fra en Tomcat-server.. Lenke til kommentar
Lock-Aze Skrevet 15. januar 2014 Del Skrevet 15. januar 2014 Enten NodeJS eller så ville jeg skrevet alt i Python. Mest avhengig av hva jeg hadde orket den dagen. NodeJS eksempelet viser jo enkelt og greit hvordan man kan gjøre det i node. Lenke til kommentar
Marthe-Ma Skrevet 15. januar 2014 Forfatter Del Skrevet 15. januar 2014 Takk for alle svar. Tja, siden du allerede har litt i Python, går det vel an å lage resten i Python også. Gir heller ikke helt mening for meg hvorfor et java applet (som kjører på klientsiden) trenger å hostes fra en Tomcat-server.. Han som designet første utkast valgte å benytte Java. Jeg håpet det ville være en litt enklere måte å utføre dette prosjektet på, så det er derfor jeg spør. Jeg skal ta en titt på NodeJS. Python har jeg mest kjennskap til selv, men som jeg har skjønt det så er det vel ikke å foretrekke å begynne å redigere Html dokumenter med python? Hvordan tenker dere når dere sier at alt kan designes i python? Lenke til kommentar
Sokkalf™ Skrevet 15. januar 2014 Del Skrevet 15. januar 2014 Hvis du har erfaring med Python syns jeg ikke det er så mye å lure på. Finnes masse web-rammeverk for Python, Django er vel det mest kjente, men det kan fort bli litt heavy for et såpass lite prosjekt.. men det finnes masse mindre greier også. Python brukes masse på web! Lenke til kommentar
Lycantrophe Skrevet 15. januar 2014 Del Skrevet 15. januar 2014 Vil du at nettsiden skal oppdatere informasjonen selv eller snakker du om oppdatering på serverside? Lenke til kommentar
Araho Skrevet 15. januar 2014 Del Skrevet 15. januar 2014 Prøv Flask, om du er på utkikk etter et mikrorammeverk for web i Python! Aner ikke hvordan det er å presentere skikkelige websider i det riktignok, men verdt å sjekke ut. Lenke til kommentar
siDDis Skrevet 15. januar 2014 Del Skrevet 15. januar 2014 Flask kjem med Jinja2 templating som er heilt greit for eit enkelt prosjekt som dette. Alt bør løysast med Python. Lenke til kommentar
siDDis Skrevet 15. januar 2014 Del Skrevet 15. januar 2014 Du kan også bruke Vert.x, som er det same som Node.js, bare meir moderne. Og du kan framleis bruke Python. Lenke til kommentar
Marthe-Ma Skrevet 16. januar 2014 Forfatter Del Skrevet 16. januar 2014 Vil du at nettsiden skal oppdatere informasjonen selv eller snakker du om oppdatering på serverside? Jeg ser for meg at oppdateringen skal skje på serversiden. Informasjonen om NTP serverne blir samlet på samme maskin som hoster nettsiden. Andre klienter i nettverket skal kun se informasjonen. Ellers takk for alle svar. Jeg kommer helt klart til å fokusere videre på python, og investere litt tid i Django som virker som et framtidsrettet og bra verktøy å lære seg. Lenke til kommentar
Lycantrophe Skrevet 16. januar 2014 Del Skrevet 16. januar 2014 Jeg ser for meg at oppdateringen skal skje på serversiden..Da er det ingen grunn til å bruke noe annet enn python. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå