je suis nouveau dans signalR (et JQuery: D) ..... je veux définir quelques noms d'utilisateur et le mapper à connectionId ... après avoir vérifié quelques échantillons c'est mon code. cependant, cela ne fonctionne pas ..... la page fonctionne sans erreur mais le div id = "msg" reste inchangé. Pour l'instant, tout ce que je veux, c'est d'écrire la liste des noms d'utilisateurs et de connectionids sur la page du client.signalR asp.net set nom d'utilisateur et connectionID
SERVEUR
namespace SERVXZ
{
class UserConn
{
public string Usrname { set; get; }
public string ConnectionID { set; get; }
}
public class XZHUB : Hub
{
//public static ConcurrentDictionary<string, string> MyUsers = new ConcurrentDictionary<string, string>();
List<UserConn> ulist = new List<UserConn>();
public override Task OnConnected()
{
var us = new UserConn();
us.Usrname = Context.QueryString["username"];
us.ConnectionID = Context.ConnectionId;
ulist.Add(us);
// var username = Context.QueryString["username"];
// MyUsers.TryAdd(Context.ConnectionId,username);
return base.OnConnected();
}
public void Send()
{
Clients.All.broadcastMessage(ulist[0]);
}
}
}
CLIENT
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Main.aspx.cs" Inherits="SERVXZ.Main" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="USR" runat="server" Text="UserName"></asp:Label>
<br />
<asp:Button ID="SUB" runat="server" OnClick="SUB_Click" Text="Submit" />
<div id="msg">HERE</div>
<script src="Scripts/jquery-3.1.1.js"></script>
<script src="Scripts/jquery.signalR-2.2.2.js"></script>
<script src="/signalr/hubs"></script>
<script type="text/javascript">
$(function() {
var con = $.connection.XZHUB;
$('#msg').text("test");
$.connection.hub.qs = { 'username': 'rooz' };
con.client.broadcastMessage = function (msg) {
var enmsg = $('<dive />').text(msg).html();
$('#msg').append('<div>'+enmsg+'</div>');
};
$.connection.hub.start().done(function() {
$('#SUB').click(function() {
con.server.send();
});
});
});
</script>
</div>
</form>
</body>
</html>
Merci d'avance :) .......................
Pourriez-vous ouvrir les outils de développement dans votre navigateur? Je parie que vous obtenez des erreurs javascript – hardkoded
Je vous recommande également d'ajouter un nom de hub à votre hub, quelque chose comme '[HubName (" XZHUB ")]' – hardkoded
TypeError Uncaught: Impossible de lire la propriété 'client' de non défini à HTMLDocument . (Main.aspx: 35) à mightThrow (jquery-3.1.1.js: 3570) au processus (jquery-3.1.1.js: 3638) –