나는 Node.js를 새로운 해요/socket.io 그래서 나는 정말 내가 뭘하는지 모르겠지만, 나는 내 서버 측이있어 :node.js/socket.io를 사용하는 클라이언트 측 tcp?
var app = require('net')
, fs = require('fs')
var server = app.createServer(function (socket) {
socket.write("Echo server\r\n");
socket.pipe(socket);
socket.on('data', function(data) {
console.log(data);
});
});
var io = require('socket.io').listen(server)
server.listen(81);
그래서 TCP 서버 작품 nc localhost 81을 사용하여 데이터를 보낼 때. 그러나 스크립트 태그를 사용하여 서버 측에서 웹 사이트의 tcp 서버에 데이터를 연결하고 보내는 방법을 모르겠습니다. 그렇다면 클라이언트 측은이 TCP 서버에 연결하여 데이터를 전송하는 것이 무엇입니까?
감사합니다.
새로 추가 된 코드 :
서버 :
var app = require('net')
, fs = require('fs')
var sockets_list = [];
var server = app.createServer(function (socket) {
sockets_list.push(socket);
socket.write("Echo server\r\n");
socket.on('data', function(data) {
console.log(data);
for (var i = 0; i < sockets_list.length; i++) {
sockets_list[i].write(data);
}
});
socket.on('end', function() {
var i = sockets_list.indexOf(socket);
sockets_list.splice(i, 1);
});
});
server.listen(81);
클라이언트 :
내가 하나 개의 소켓과 노스 캐롤라이나 로컬 호스트 소요 웹 페이지 로딩이 : 무슨 일이 있었는지<script type="text/javascript" src="http://localhost:82/socket.io/socket.io.js"> </script>
<script>
var socket = io.connect('http://localhost:81');
socket.on('connect', function() {
socket.send('hi');
});
socket.send('hi1');
socket.emit('hi2');
alert('here');
</script>
81은 다른 소켓을 사용합니다. 따라서 nc는 웹 페이지가 보내는 모든 것을 표시합니다. 웹 페이지에 연결하면 경고 ('여기'); nc는 http 요청을 표시하지만, 그 밖의 것은 tcp 서버로 전송되지 않으며 웹 페이지는 상시 새로 고침 상태입니다. 왜 웹 페이지가 완전히로드되지 않고 'hi'메시지가 전송되지 않고 TCP 요청을 처리 할 수 있습니까? 내 tcp 클라이언트가 내 tcp 서버와 함께 실패하지 않는 이유는 무엇입니까?
HTTP 요청을 tcp 서버로 보내는 것은 중요합니까? 또한 연결 한 후 새로 고침 원이 계속 이동하지 않으면 웹 페이지가 계속 이동하지 않습니다 ... 어떻게됩니까? – Derek
웹 페이지에서 * raw * TCP 연결을 설정할 수 없습니다. 임의의 소켓을 열 수있는 브라우저 기능은 없습니다. Socket.io는 [WebSockets] (http://en.wikipedia.org/wiki/WebSocket)을 모방 한 크로스 브라우저 추상화 레이어를 제공합니다.이 추상화 레이어는 TCP와 비슷한 전이중 메시지 전달을 허용합니다. – josh3736
k thx 나를 위해 첫 번째 부분을 설명하기 위해,하지만 난 여전히 내 TCP 서버에 연결하려고하면 웹 페이지가 완전히 완료되지 않고 내가 아무것도 보낼 수없는 이유는 혼란스러워. 위의 새 코드가 추가되었습니다. – Derek