2016-12-29 4 views
1

NodeMCU 루아 소켓 클라이언트를 node.js socket.io 서버에 연결하고 싶습니다.nodeMCU 루아 소켓 클라이언트와 node.js socket.io 서버 연결하기

NodeMCU 루아 코드 :

sk = net.createConnection(net.TCP, 0) 
sk:on("receive", function (sck,c) 
    print (c) 
end) 

sk:on("connection", function (sck,c) 
    print("Connected") 
    sk:send("Helloooo...") 
end) 
sk:connect(12346,"192.168.1.100") 

Node.js를 서버 코드 :

var express = require('express'); 
var app = express(); 
var server = require('http').Server(app); 
var io = require('socket.io')(server); 
io.on('connection', function(socket){ 
    console.log('someone is connected'); 
}); 
server.listen(12346); 

는 문제 :

다음은 루아 클라이언트 연결 이벤트에이다 해고 및 "연결"인쇄하지만 연결에 node.js socket.io 서버의 이벤트가 시작되지 않았습니다. 나는 파이썬 소켓 서버로 루아 클라이언트를 시도해 보았다. 그리고 Javascript 소켓 클라이언트로 node.js 소켓 서버를 시도해 보았습니다.

NodeMCU와 socket.io간에 호환성 문제가 있습니까?

답변

1

Socket.io은 기본 소켓 구현이 아닌 WebSocket 래퍼입니다. 핸드 셰이 킹 및 하트 비트와 같은 특정 조작이 있습니다. 따라서 소켓 서버에서는 성공할 수 있지만 WebSocket 서버에서는 성공할 수 없습니다.

NodeMCU 쪽에서 WebSocket 클라이언트 구현을 사용할 수도 있습니다. 그러나 Lua 라이브러리가 WebSocket API 버전과 일치하는지 확실하지 않습니다.

비동기 통신을 원할 경우 NodeJS 용 라이브러리가 많은 MQTT을 사용할 수 있습니다. 그렇지 않으면 이전에 성공적으로 수행 한 것처럼 NodeJS의 소켓 서버를 사용하십시오.

+0

답장을 보내 주셔서 감사합니다. 이미 MQTT를 시도하고 작동했습니다. –