我正在使用SocketIoClientDotNet - .Net的Socket.IO客户端库,我试图一个接一个地发出两个事件。有时它会发出两个事件,有时它只会发出第一个事件。以下是我的代码:
StoreKit
当我重启我的nodejs服务器时,重启后发送之前未发出的所有第二个事件。任何帮助将不胜感激。
答案 0 :(得分:0)
我遇到过类似的问题,这是因为为socket对象创建的实例。首先,当我在两个不同的浏览器中打开相同的应用程序时,我使用单例模式来获取导致我问题的套接字对象的实例。所以我尝试使用session来保持我的套接字对象,而不是有多个套接字对象。尝试使用对象的会话而不是创建两个不同的实例。希望它有所帮助!
答案 1 :(得分:0)
我通过在EVENT_CONNECT()
成功连接后发送两个事件来解决此问题。
socketModel sm = new socketModel();
sm.CHANNEL = "channel_" + cHAT_MESSAGES.SENDER_ID + cHAT_MESSAGES.RECEIVER_ID;
sm.DATA = chatMessageModelObj;
string serializedData = Newtonsoft.Json.JsonConvert.SerializeObject(sm);
socketModel smSecond = new socketModel();
smSecond.CHANNEL = "messagecount_" + cHAT_MESSAGES.RECEIVER_ID;
if (updateCount == null)
{
smSecond.DATA = 0;
}
else
{
smSecond.DATA = updateCount.Count();
}
string serializedDataSecond = Newtonsoft.Json.JsonConvert.SerializeObject(smSecond);
var socket = IO.Socket(ConfigurationManager.AppSettings["socketlink"].ToString());
socket.Once(Socket.EVENT_CONNECT, () =>
{
socket.Emit("apimessage", serializedData);
socket.Emit("apimessage", serializedDataSecond);
});
socket.Once("apimessage", () =>
{
socket.Disconnect();
});
不过,我有一个问题是事件有任何延迟。