gpt4 book ai didi

c# - 向所有连接的客户端发送广播 POP-UP 消息

转载 作者:行者123 更新时间:2023-11-30 23:26:12 25 4
gpt4 key购买 nike

我正在使用 C# 在 ASP.NET WebForms 中构建(仍在学习)Web 应用程序。我们有一个集中式数据库,所有客户端都通过相同的静态 IP 连接到数据库。每个客户端都有自己的唯一的办公室 ID。我们有 16 个办公室,每个办公室都有自己的办公室 ID。每天我们都会用新版本更新新功能。而不是发送聊天消息关于新的变化/更新/功能的个人客户,我们可以让它像我提到的所有办公室一样作为广播消息发送吗有一个 OfficeId=14 的公司办公室。所以当其他办公室的用户登录时,他/她应该会看到一条弹出通知消息关于更改。是否可以说一个表格来输入有关更改的详细信息,并且当公司办公室的用户保存它时,它会显示在索引页面中所有的客户?

我对此做了很多研究,但无法得到可靠的解释。对于这里的所有专家来说,这可能是一个重复或蹩脚的问题,请忍耐一下。

最佳答案

检查此链接 ASP.Net SignalR: Building a Simple Real-Time Chat Application

来自 ChatHub 类并使用以下代码。

 public class ChatHub : Hub
{
static ConcurrentDictionary<string, string> dic = new ConcurrentDictionary<string, string>();

public void Send(string name, string message)
{
Clients.All.broadcastMessage(name, message);
}



public void Notify(string name, string id)
{
if (dic.ContainsKey(name))
{
Clients.Caller.differentName();
}
else
{
dic.TryAdd(name, id);
foreach (KeyValuePair<String, String> entry in dic)
{
Clients.Caller.online(entry.Key);
}
Clients.Others.enters(name);
}
}

public override Task OnDisconnected()
{
var name = dic.FirstOrDefault(x => x.Value == Context.ConnectionId.ToString());
string s;
dic.TryRemove(name.Key, out s);
return Clients.All.disconnected(name.Key);
}

}

在 HTML + javascript 中

   <script type="text/javascript">

$(function () {
showModalUserNickName();
});

function showModalUserNickName() {
$("#dialog").dialog({
modal: true,
buttons: {
Ok: function () {
$(this).dialog("close");
startChartHub();
}
}
});
}

function startChartHub() {
var chat = $.connection.chatHub;

// Get the user name.
$('#nickname').val($('#nick').val());
chat.client.differentName = function (name) {
showModalUserNickName();
return false;
// Prompts for different user name
$('#nickname').val($('#nick').val());
chat.server.notify($('#nickname').val(), $.connection.hub.id);
};

chat.client.online = function (name) {
// Update list of users
if (name == $('#nickname').val())
$('#onlineusers').append('<div class="border" style="color:green">You: ' + name + '</div>');
else {
$('#onlineusers').append('<div class="border">' + name + '</div>');
}
};

chat.client.enters = function (name) {
$('#chatlog').append('<div style="font-style:italic;"><i>' + name + ' joins the conversation</i></div>');
$('#onlineusers').append('<div class="border">' + name + '</div>');
};
// Create a function that the hub can call to broadcast chat messages.
chat.client.broadcastMessage = function (name, message) {
//Interpret smileys
message = message.replace(":)", "<img src=\"/images/smile.gif\" class=\"smileys\" />");
message = message.replace("lol", "<img src=\"/images/laugh.gif\" class=\"smileys\" />");
message = message.replace(":o", "<img src=\"/images/cool.gif\" class=\"smileys\" />");

//display the message
$('#chatlog').append('<div class="border"><span style="color:red">' + name + '</span>: ' + message + '</div>');
};

chat.client.disconnected = function (name) {
//Calls when someone leaves the page
$('#chatlog').append('<div style="font-style:italic;"><i>' + name + ' leaves the conversation</i></div>');
$('#onlineusers div').remove(":contains('" + name + "')");
}

// Start the connection.
$.connection.hub.start().done(function () {
//Calls the notify method of the server
chat.server.notify($('#nickname').val(), $.connection.hub.id);

$('#btnsend').click(function () {

// Call the Send method on the hub.
chat.server.send($('#nickname').val(), $('#message').val());

// Clear text box and reset focus for next comment.
$('#message').val('').focus();
});

});
}

</script>
<div id="container">
<input type="hidden" id="nickname" />
<div id="chatlog"></div>
<div id="onlineusers">
<b>Online Users</b>
</div>
<div id="chatarea">
<div class="messagelog">
<textarea spellcheck="true" id="message" class="messagebox"></textarea>
</div>
<div class="actionpane">
<input type="button" id="btnsend" value="Send" />
</div>
<div class="actionpane">

</div>
</div>
<div id="dialog" title="Enter your name to start a chat.">
<input type="text" id="nick" />
</div>

关于c# - 向所有连接的客户端发送广播 POP-UP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36951632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com