3
Ich möchte eine Art von Timer an den Server an alle angeschlossenen Clients senden. Ich konnte dies auf Knopfdruck tun. Aber was ich wirklich brauche, ist diesen Timer automatisch jede Sekunde zu senden.Senden Sie jede Sekunde eine Nachricht an Clients mit signalR mit C#
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Signalr Chat Messenger</title>
<script src="Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.signalR-1.0.0-rc1.js" type="text/javascript"></script>
<script src="signalr/hubs" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<script type="text/javascript">
$(function() {
var IWannaChat = $.connection.myChatHub;
IWannaChat.client.addMessage = function (message) {
$('#listMessages').append('<li>' + message + '</li>');
};
IWannaChat.client.addTest = function (timer) {
$('#lblTimer').text(timer);
};
$("#SendMessage").click(function() {
IWannaChat.server.send($('#txtMessage').val());
});
$.connection.hub.start();
});
</script>
<div>
<input type="text" id="txtMessage" />
<input type="button" id="SendMessage" value="broadcast" /><asp:Label ID="lblTimer" runat="server" Text="timer"></asp:Label>
<ul id="listMessages">
</ul>
</div>
</form>
</body>
</html>
und das ist mein HUB
using System;
using Microsoft.AspNet.SignalR.Hubs;
using System.Threading;
namespace SignalRChat
{
[HubName("myChatHub")]
public class LetsChat : Hub
{
DateTime dateTime2 = DateTime.Now;
string dateTime1 = "11.04.2016 15:49:00";
public void send(string message)
{
//Thread.Sleep(1000);
var diffInSeconds = (Convert.ToDateTime(dateTime1) - dateTime2).TotalSeconds;
Clients.All.addMessage(message);
Clients.All.addTest(diffInSeconds.ToString());
//Clients.All.addTest(dateTime1.ToString());
}
}
}
Danke. habe deinen Code ausprobiert, aber es funktioniert nicht. Vielleicht hast du etwas vergessen? – Barlet
um klarer zu werden bekomme ich folgenden Fehler in der Leitung: send ("Message"); Ein Objektverweis wird für das nicht statische Feld, die Methode oder die Eigenschaft – Barlet
benötigt, um die Antwort zu aktualisieren. Sie müssen den Hub innerhalb der verstrichenen Methode abrufen, da sie statisch ist. – Nitin