راکت
حل شده

مشکل socketio

1 پاسخ

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

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 ساخته نشده باشه).

programer
programer
@0270275
ثبت پرسش جدید

پاسخ‌ها

1
programer
programer
@0270275
بهترین پاسخ

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

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام