Socket.io sunucusu için Node.js istemcisi


120

Çalışan bir socket.io sunucum ve bir socket.io.js istemcisiyle eşleşen bir web sayfam var. Her şey yolunda.

Ancak, merak ediyorum, başka bir makinede, bir istemci görevi görecek ve belirtilen socket.io sunucusuna bağlanacak ayrı bir node.js uygulaması çalıştırmanın mümkün olup olmadığını merak ediyorum.


2
Socket.emit () öğesinden gelen yanıtı nasıl görebilirim?
codecowboy

1
Üzerinden gidin github.com/LearnBoost/socket.io-client belgelerinde, ben orada eminim. Bir süredir hatırlamıyorum, üzgünüm ...
Predrag Stojadinović

6
io.connectBahsettiğiniz gibi işlev çağrılırsa çalışmıyor . : Sanki çağrılmalıdırsocket = io.connect('http://localhost:1337');
ceremcem

Yanıtlar:


74

Bu, Socket.IO-client kullanılarak mümkün olmalıdır: https://github.com/LearnBoost/socket.io-client


8
Uhm, yanılıyor olabilirim, ama bu, tarayıcı içinde çalışan istemciye benziyor. İhtiyacım olan şey, bağımsız bir node.js istemcisidir.
Predrag Stojadinović

Yakın zamanda kontrol etmedim, ancak Düğüm 0.4.x'te bu sunucuda da çalıştı (bunu aslında geçmiş bir projede uyguladım).
alessioalex

1
Senin için çalıştığına sevindim! Btw, çalışma örneğinizi ayrı bir cevap yerine soruya koymak daha iyidir.
alessioalex

Bu, Windows 8'de benim için doğru şekilde yüklenmedi - bunun için bir hata yazdım
BT

@ PredragStojadinović: Lütfen kodunuzu gönderebilir misiniz? Bir NodeJS sunucusunu diğerine bağlamak istiyorum. Bana yardım edebilir misin? Teşekkürler.
Pritam

43

Daha önce verilen çözüm için örnek ekleniyor. Https://github.com/socketio/socket.io-client kullanaraksocket.io-client

İstemci Tarafı:

//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');

Sunucu Tarafı:

//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');
});

Çalıştırmak :

2 konsolu açın ve çalıştırın node server.jsvenode client.js


2
Harika örnekler! Bir şey, istemci tarafında, "soket" değişkeninin bağlantı olayında aktarıldığına inanmıyorum. Belki yanılıyorum, ama npm socket.io-client ile gördüğüm davranış bu gibi görünüyor
Ryan S

8

Socket.io-client'ı kurduktan sonra:

npm install socket.io-client

Müşteri kodu şu şekilde görünür:

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?' });

Teşekkürler alessioalex .


0

Evet, socket.io tarafından desteklendiği sürece herhangi bir istemciyi kullanabilirsiniz. Düğümü, java, android veya hızlı olması fark etmez. Tek yapmanız gereken socket.io'nun istemci paketini kurmaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.