SignalR(v2.2.0)Client.Group()不适用于IOS客户端

阳光明媚

我正在使用SwiftR与IOS客户端进行SignalR(v2.2.0)聊天一切运行正常,IOS客户端以及Web客户端(Asp.net)都可以使用以下方式进行聊天:

客户:

var chatHub = $.connection.chatHub;
 $("#btnStartChat").click(function () {

            var name = $("#txtNickName").val();//UserName
            var userId = $("#txtUserId").val();
            var room = $("#txtRoomId").val();
            if (name.length > 0) {
                chatHub.server.joinRoom(userId, room, name).done(function () {
                    chatHub.server.connect(userId, room, name);
                });
            }
            else {
                alert("Please enter name");
            }

        });
  chatHub.client.messageReceived = function (userName, message) {

            AddMessage(userName, message);
            $("#istyping").html('');
        };
 function AddMessage(userName, message) {
        $('#divChatWindow').append('<div class="message"><span class="userName">' + userName + '</span>: ' + message + '</div>');

        var height = $('#divChatWindow')[0].scrollHeight;
        $('#divChatWindow').scrollTop(height);
    }
   // On New User Connected
        chatHub.client.onNewUserConnected = function (id, name) {
            // alert('first time add');
            AddUser(chatHub, id, name);
        };

服务器:

 public async Task JoinRoom(string user_Id, string room_Id, string user_Name)
    {
        //Add user in database for room
        AddLoginUser(room_Id, this.Context.ConnectionId, user_Id);

        await this.Groups.Add(this.Context.ConnectionId, room_Id);
    }


    public void Connect(string user_Id, string room_Id, string user_Name)
    {
        var id = Context.ConnectionId;
        Clients.Caller.onConnected(id, user_Name, GetRoomUser(room_Id), GetRoomMessage(room_Id));

        // send to all in group to update user list
        Clients.OthersInGroup(room_Id).onNewUserConnected(id, user_Name);
    }



 public void SendMessageToAll(string user_Name, string message, string room_Id, string user_Id)
    {
        // store messages in db
        // SaveRoomMessage(user_Id, message, room_Id);

        // Broad cast message
        Clients.All.messageReceived(user_Name, message);
        //Clients.Group(room_Id).messageReceived(user_Name, message);
    }

问题:

在上述方法中,如果要更改

 Clients.All.messageReceived(user_Name, message);

 Clients.Group(room_Id).messageReceived(user_Name, message);

即使IOS客户端能够将消息发送到Web客户端,IOS客户端也无法接收消息。Web客户端可以在彼此之间发送和接收消息而不会出现任何问题。

我在网上对此进行了很多搜索,但没有找到合适的答案。如果仍然需要更多信息,请让我知道,我将尽力提供。

提前致谢。

昆汀·罗杰(Quentin Roger)

您是否正在执行类似操作以将客户添加到组中?

服务器 :

public async Task JoinRoom(string room_id)
{
    await this.Groups.Add(this.Context.ConnectionId, room_id);
}

public async Task UnJoinRoom(string room_id)
{
    await this.Groups.Remove(this.Context.ConnectionId, room_id);
}

客户 :

js

var chatHub = $.connection.chatHub;
chatHub.server.joinRoom('roomId')

迅速

chatHub.invoke("joinRoom", arguments: ["room_id"])

之后,如果你打电话

Clients.Group('room_Id').messageReceived(user_Name, message);

它应该工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

适用于 iOS 的 Auth0 v2:更新 idToken

来自分类Dev

Ionic链接不适用于Ionic v2

来自分类Dev

玩!适用于Android客户端的Framework 2 REST身份验证和授权

来自分类Dev

模板化链接不适用于-O2,但适用于-O0

来自分类Dev

模板化链接不适用于-O2,但适用于-O0

来自分类Dev

管理员同意不适用于App Model V2

来自分类Dev

Facebook {page-id} / tabs不适用于v2 sdk

来自分类Dev

管理员同意不适用于App Model V2

来自分类Dev

适用于Docker的Shipyard v2无法登录

来自分类Dev

适用于Docker的Shipyard v2无法登录

来自分类Dev

适用于本机应用程序的OAuth 2-公共和机密客户端类型之间有何区别?

来自分类Dev

SQLite不适用于Ionic 2

来自分类Dev

SQLite不适用于Ionic 2

来自分类Dev

适用于Windows v2的Kinect与适用于Xbox One的Kinect

来自分类Dev

从Google Calendar API v2迁移到v3-客户端授权

来自分类Dev

带有负载均衡器的SignalR v2

来自分类Dev

QBD V2客户还原

来自分类Dev

背景音频不适用于 iOS 上的 Ionic3 + Videogular2

来自分类Dev

Android Maps v2无法获得连接工厂客户端

来自分类Dev

Facebook v2与iOS SDK的集成

来自分类Dev

linux文件描述符0 1 2是否不适用于stdin,stdout和stderr?

来自分类Dev

适用于Android的GoogleMaps v2:渲染地图时无法删除标记

来自分类Dev

适用于s3的AWS开发工具包v2

来自分类Dev

适用于Obj-C的Dialogflow V2(beta1)SDK

来自分类Dev

适用于最低API 10的Google Map v2

来自分类Dev

适用于Android的Google Maps API v2:标记和折线位置不匹配

来自分类Dev

适用于Android的GoogleMaps v2:渲染地图时无法删除标记

来自分类Dev

适用于Android的Google Maps v2地图图块重叠

来自分类Dev

Google reCaptcha v2 PHP - 仅适用于 file_get_contents()

Related 相关文章

热门标签

归档