如何使用已部署的服务创建 SignalR 客户端

本文关键字:创建 SignalR 客户端 服务 何使用 部署 | 更新日期: 2023-09-27 18:37:06

我有这个SignalR代码。

<div class="container">
<input type="text" id="username" />
<input type="text" id="tags" />
<input type="button" id="sendmessage" value="Register" />
<input type="hidden" id="displayname" />
<ul id="discussion"></ul>
</div>
@section scripts {
<!--Script references. -->
<!--The jQuery library is required and is referenced by default in _Layout.cshtml. -->
<!--Reference the SignalR library. -->
<script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="~/signalr/hubs"></script>
<!--SignalR script to update the chat page and send messages.-->
<script>
    $(function () {
        // Reference the auto-generated proxy for the hub.
        var chat = $.connection.notificationHub;
        // Create a function that the hub can call back to display messages.
        chat.client.addNewMessageToPage = function (name, message) {
            // Add the message to the page.
            $('#discussion').append('<li><strong>' + htmlEncode(name)
                + '</strong>: ' + htmlEncode(message) + '</li>');
        };
        // Get the user name and store it to prepend to messages.
        //$('#displayname').val(prompt('Enter your name:', ''));
        // Set initial focus to message input box.
        $('#username').focus();
        // Start the connection.
        $.connection.hub.start().done(function () {
            $('#sendmessage').click(function () {
                // Call the Send method on the hub.
                chat.server.register($('#username').val(),         $('#tags').val());
                // Clear text box and reset focus for next comment.
                //$('#message').val('').focus();
            });
        });
    });
    // This optional function html-encodes messages for display in the page.
    function htmlEncode(value) {
        var encodedValue = $('<div />').text(value).html();
        return encodedValue;
    }
</script>

}

此代码部署为云 Azure 服务。

我需要为相同的创建客户端。

我目前做了什么。

 public class Program : Hub 
 {
    ClientEntry objClient = new ClientEntry();
    string userName = "test";
    string tags = "swe;India;xyz";
    public static void Main(string[] args)
    {
        //Program prg = new Program();
        //prg.ConnectToHub();
    }
    public void ConnectToHub()
    {
        var hubUrl = "http://test.cloudapp.net/Signalr/hubs/";
        var hubConnection = new HubConnection(hubUrl);
        var chatHubProxy = hubConnection.CreateHubProxy("TestHub");
        hubConnection.Start();
    }
    public void addNewMessageToPage(string name, string message)
    { }       
 }

我必须使用addNewMessageToPage方法,但无法理解请帮助

如何使用已部署的服务创建 SignalR 客户端

我想你从 : http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

在示例中,他们调用 Send 方法

public void Send(string name, string message)
{
    // Call the broadcastMessage method to update clients.
    Clients.All.broadcastMessage(name, message);
}

chat.server.send($('#displayname').val(), $('#message').val());

如果您想打电话给addNewMessageToPage

您必须使用 :

chat.server.addNewMessageToPage($('#displayname').val(), $('#message').val());

并且您的集线器功能应该是:

public void AddNewMessageToPage(string name, string message)
{ 
//Some stuff here
}