You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					69 lines
				
				1.9 KiB
			
		
		
			
		
	
	
					69 lines
				
				1.9 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								# sntp
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								An SNTP v4 client (RFC4330) for node. Simpy connects to the NTP or SNTP server requested and returns the server time
							 | 
						||
| 
								 | 
							
								along with the roundtrip duration and clock offset. To adjust the local time to the NTP time, add the returned `t` offset
							 | 
						||
| 
								 | 
							
								to the local time.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](http://travis-ci.org/hueniverse/sntp)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Usage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								var Sntp = require('sntp');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// All options are optional
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var options = {
							 | 
						||
| 
								 | 
							
								    host: 'nist1-sj.ustiming.org',  // Defaults to pool.ntp.org
							 | 
						||
| 
								 | 
							
								    port: 123,                      // Defaults to 123 (NTP)
							 | 
						||
| 
								 | 
							
								    resolveReference: true,         // Default to false (not resolving)
							 | 
						||
| 
								 | 
							
								    timeout: 1000                   // Defaults to zero (no timeout)
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Request server time
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Sntp.time(options, function (err, time) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (err) {
							 | 
						||
| 
								 | 
							
								        console.log('Failed: ' + err.message);
							 | 
						||
| 
								 | 
							
								        process.exit(1);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    console.log('Local clock is off by: ' + time.t + ' milliseconds');
							 | 
						||
| 
								 | 
							
								    process.exit(0);
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If an application needs to maintain continuous time synchronization, the module provides a stateful method for
							 | 
						||
| 
								 | 
							
								querying the current offset only when the last one is too old (defaults to daily).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								// Request offset once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Sntp.offset(function (err, offset) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    console.log(offset);                    // New (served fresh)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // Request offset again
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    Sntp.offset(function (err, offset) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        console.log(offset);                // Identical (served from cache)
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To set a background offset refresh, start the interval and use the provided now() method. If for any reason the
							 | 
						||
| 
								 | 
							
								client fails to obtain an up-to-date offset, the current system clock is used.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								var before = Sntp.now();                    // System time without offset
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Sntp.start(function () {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var now = Sntp.now();                   // With offset
							 | 
						||
| 
								 | 
							
								    Sntp.stop();
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 |