سلام
من میخواهم برای هر چت یک کانکشن آی دی در نظر بگیریم نه به ازای هر کاربر به این صورت در یک صفحه درخواست چت داده میشه و کاربر با کلیک بر روی درخواست یک چت مجزا باز میشه وی یک کانکشن ای دی برای چت در نظر گرفته میشه و در جدل chat ذخیره میشه و پیامها بر اساس این کانکشن ای دی در جدولی دیگر به نام chatlogs ذخیره میشه تا بعدا بتونیم پیامهای رد وبدل شده در این چت رو بازیابی کنیم
مشکل اینجاست در متد جاوا اسکریپت صفحه ای که چت رو ایجاد میکنه هنگام پاس دادن connection.hub.start.$
کانکشن ای دی رو ایجاد میکنه ولی در صفحه چت وقتی میخوای پیامها رو به متد ثبت چت بدی مجبوری دوباره
connection.hub.start.$ کنم واین میاد هاب رو از اول اجرا میکنه که به معنی نال کردن مجدد متغییرهای گلوبال ایا راهی وجود داره
Chat c = new Chat();
ChatLog m = new ChatLog();
public Guid NewObjects(Guid Id)
{
return Id;
}
public Guid idChat { get ; set; }
public void CreateChat()
{
Guid Id = Guid.Parse(Context.ConnectionId);
NewObjects(Id);
idchat=Id;
c.ChatId = Id;
c.Time = 25;
c.UserId = "87EC3AD1 - 53D1 - 4649 - 8CF3 - 2CD5ADB1938C";
var chat = db.Chats.FirstOrDefault(c => c.ChatId == Id);
if (chat == null)
{
db.Chats.Add(c);
db.SaveChanges();
}
db.Dispose();
}
public void broadcastMessage(string name, string message, Guid Id)
{
m.ChatText = message;
m.Id = Id;
m.ChatDate = DateTime.Now;
m.UserId = "87EC3AD1 - 53D1 - 4649 - 8CF3 - 2CD5ADB1938C";
db.ChatLogs.Add(m);
db.SaveChanges();
db.Dispose();
Clients.All.Msg(name, message,m.Id);
}
خیلی گشتم ولی متدهای هاب جاوا اسکریپت نیست تا بتونم راهی پیدا کنم
انگار مایکروسافت از روی قصد اینکارو کرده