مشکل socketio

4 سال پیش توسط programer مطرح شد
آفلاین
user-avatar
programer ( 7 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

0

سلام
بخشی از کد سرور:

var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket){
    socket.on('change cell', function(cellObj){
        socket.broadcast.emit('change cell', cellObj);
    });
    socket.on('focus cell', function(focusObj){
        socket.broadcast.emit('focus cell', focusObj);
    });
    socket.on('blur cell', function(blurObj){
        socket.broadcast.emit('blur cell', blurObj);
    });
});

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

بخشی از کد کلاینت:
دریافت:

import openSocket from 'socket.io-client';
const socket = openSocket('http://localhost:۸۰۰۰');
    socket.on('change cell', function(cellObj){
      console.log("cellObj")
      Control.changeEvent(cellObj);
    });
    socket.on('focus cell', function(focusObj){
      console.log("focusObj")
      Control.focusEvent(focusObj)      
    });
    socket.on('blur cell', function(blurObj){
      Control.blurEvent(blurObj)      
    });

انتشار:

import openSocket from 'socket.io-client';
const socket = openSocket('http://localhost:۸۰۰۰');
socket.emit('change cell', {row, column , value , changer:ID , readOnly:true});

   socket.emit('focus cell', {row, column , readOnly:true});     

 socket.emit('blur cell', {row, column , readOnly:false});     

ارسال کننده رویداد در سمت کلاینت موقع انتشار توسط خودش هم رویداد رو دریافت میکنه با اینکه از broadcast استفاده شده.
حل این مشکل چی کار کنم؟
و لطفا اگه real-time library خوب دیگه ای که از قابلیت broadcast سوکت دات یو پشتیبانی میکنه معرفی کنید( البته مثل engine.io روی socket.io ساخته نشده باشه).

بهترین پاسخ
آفلاین
user-avatar
programer
4 سال پیش

حل شد!
مشکل از این بود که دوبار شی سوکت رو ساختم!

آفلاین
user-avatar
programer ( 7 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

1

حل شد!
مشکل از این بود که دوبار شی سوکت رو ساختم!

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.