如何从.client.addMessage获取组标识符

时间:2013-06-07 19:11:48

标签: c# asp.net real-time signalr

我需要在函数回调中获取组标识符和消息。有可能吗?

以下是代码:

$(function () {
    // Proxy created on the fly          
    var chat = $.connection.discussion;
    var discussionId = Math.floor(Math.random() * 2);
    alert(discussionId);
    var discussionId2 = Math.floor(Math.random() * 2);
    alert(discussionId2);
    $.connection.hub.start(function () {
        chat.server.join(discussionId);
        chat.server.join(discussionId2);
    });

    // Declare a function on the chat hub so the server can invoke it          
    chat.client.addMessage = function (message) {
        $('#messages').append('<li>' + message + '</li>');
    };

    // Start the connection
    $.connection.hub.start().done(function () {
        $("#broadcast").click(function () {
            // Call the chat method on the server
            var discussionIdX = Math.floor(Math.random() * 2);
            alert(discussionIdX);
            chat.server.send(discussionIdX, $('#msg').val());
        });
    });
});

这只是一个例子。基本上我将用户添加到2个随机组,然后我需要我需要组标识符将消息附加到正确的div。

编辑:

    public class Discussion : Hub{
public void Send(string discussionId, string message)
{
    Clients.Group(discussionId).addMessage(message);
}

public void Join(string discussionId)
{
    Groups.Add(Context.ConnectionId, discussionId);
}}

1 个答案:

答案 0 :(得分:1)

将该组作为参数从服务器传递。

在客户端:

chat.client.addMessage = function (message, group) { ... }

并在服务器上:

Clients.Group(discussionId).addMessage(message, discussionId);