socket.io 서버용 Node.js 클라이언트


120

socket.io 서버가 실행 중이고 socket.io.js 클라이언트와 일치하는 웹 페이지가 있습니다. 모두 잘 작동합니다.

그러나 다른 컴퓨터에서 클라이언트 역할을하고 언급 된 socket.io 서버에 연결하는 별도의 node.js 응용 프로그램을 실행할 수 있는지 궁금합니다.


2
socket.emit ()의 응답을 어떻게 봅니까?
codecowboy 2014 년

1
관통 이동 github.com/LearnBoost/socket.io-client의 문서, 나는이 확신합니다. 시간이
지났기

6
io.connect언급 한대로 함수가 호출 되면 작동 하지 않습니다 . 다음과 같이 호출되어야합니다.socket = io.connect('http://localhost:1337');
ceremcem

답변:


74

Socket.IO-client를 사용하면 가능합니다 : https://github.com/LearnBoost/socket.io-client


8
음, 착각 할 수 있지만 이것은 브라우저 내에서 실행되는 클라이언트처럼 보입니다. 필요한 것은 독립형 node.js 클라이언트입니다.
Predrag Stojadinović

나는 최근에 확인하지 않았지만 Node 0.4.x에서 이것은 서버에서도 작동했습니다 (실제로 과거 프로젝트에서 구현했습니다).
alessioalex

1
나는 그것이 당신을 위해 일했다는 것을 기쁘게 생각합니다! Btw, 별도의 답변보다는 질문에 작업 예를 넣는 것이 좋습니다.
alessioalex

이 윈도우 8에 나를 위해 제대로 설치하지 않은 - 내가 그것을 위해 버그 썼다
BT

@ PredragStojadinović : 코드를 게시 해 주시겠습니까? 하나의 NodeJS 서버를 다른 서버에 연결하고 싶습니다. 도와 줄 수 있나요? 감사.
Pritam

42

이전에 주어진 솔루션에 대한 예제를 추가합니다. https://github.com/socketio/socket.io-client 사용socket.io-client

고객 입장에서:

//client.js
var io = require('socket.io-client');
var socket = io.connect('http://localhost:3000', {reconnect: true});

// Add a connect listener
socket.on('connect', function (socket) {
    console.log('Connected!');
});
socket.emit('CH01', 'me', 'test msg');

서버 측 :

//server.js
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

io.on('connection', function (socket){
   console.log('connection');

  socket.on('CH01', function (from, msg) {
    console.log('MSG', from, ' saying ', msg);
  });

});

http.listen(3000, function () {
  console.log('listening on *:3000');
});

운영 :

2 개의 콘솔을 열고 실행 node server.js하고node client.js


2
멋진 예! 한 가지, 클라이언트 측에서는 "socket"변수가 연결 이벤트에서 전달된다고 생각하지 않습니다. 어쩌면 내가 틀렸다,하지만 내가 NPM socket.io 클라이언트로보고 있어요 동작 것 같다
라이언 S

8

socket.io-client 설치 후 :

npm install socket.io-client

클라이언트 코드는 다음과 같습니다.

var io = require('socket.io-client'),
socket = io.connect('localhost', {
    port: 1337
});
socket.on('connect', function () { console.log("socket connected"); });
socket.emit('private message', { user: 'me', msg: 'whazzzup?' });

감사합니다 alessioalex .


0

예, socket.io에서 지원하는 한 모든 클라이언트를 사용할 수 있습니다. 노드, 자바, 안드로이드 또는 스위프트에 관계없이. 여러분이해야 할 일은 socket.io의 클라이언트 패키지를 설치하는 것뿐입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.