-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
60 lines (48 loc) · 1.5 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
const { SerialPort } = require('serialport')
const { ReadlineParser } = require('@serialport/parser-readline')
const port = new SerialPort({ path: '/dev/cu.usbmodem142401', baudRate: 2400 }) //시리얼포트와 boudrate 지정
const parser = new ReadlineParser()
port.pipe(parser)
const express = require('express');
const app = express()
const http = require('http');
const server = http.createServer(app);
const { Server } = require("socket.io");
const io = new Server(server);
var fs = require('fs')
var RecordTF = 0;
app.use(express.static('public'));
app.get('/', (req, res) => {
res.sendFile(__dirname + "/public/index.html"); // html 문서를 지정
});
//소켓 연결시
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('disconnect', () => {
console.log('user disconnected');
});
socket.emit('result', `${socket.id}로 연결 되었습니다.`);
parser.on('data', function(data) {
if(RecordTF == 1){
fs.appendFile('data.txt', data + '\n', function(err) {
if (err) throw err;
console.log('Data saved!');
});
}
socket.emit('data', data);
});
socket.on('message', (msg) => {
console.log("클라이언트의 요청이 있습니다.");
console.log(msg);
if(msg === 'record'){
RecordTF = 1;
}
else if(msg === 'stop'){
RecordTF = 0;
}
socket.emit('result', `수신된 메세지는 "${ msg }" 입니다.`);
});
});
server.listen(3000, () => {
console.log("server is listening at localhost: 3000"); //localhost:3000으로 접속
});