当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET WebForms中的SignalR

如何解决《ASP.NETWebForms中的SignalR》经验,为你挑选了1个好方法。

在我的一个项目中,我需要使用SignalR库.所以我决定创建一个简单的应用程序来检查它是如何工作的.我根据一些教程创建了这个应用程序,这些教程展示了如何编写聊天室.
唯一的区别是我的项目是WebForms,我也使用ASP.NET控件.

这是我到目前为止所做的:

    我安装了 SignalR

    我创建了ChatHub文件:

ChatHub.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using Microsoft.AspNet.SignalR;

using Microsoft.AspNet.SignalR.Hubs;    
namespace SignalRTest
{

    public class ChatHub : Hub
    {
        public void sendMessage(string msg)
        {
            Clients.All.addMessage(msg);
        }
    }
}

    在Default.aspx页面中:


    
    
    
    
    

    
    
    
        

    启动文件:

Startup.cs

using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(SignalRTest.Startup))]
namespace SignalRTest
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
        }
    }
}

我设置断点并点击Send按钮激活服务器上的sendMessage方法,并在客户端激活addMessage JS功能.但问题出在这里:

当我向其他用户发送内容时,他可以在

    元素中看到该消息.但不是我.然后,当他向我发送回复时,我可以看到它,但他的清单被清除了.

    它可以由ASP控件引起吗?
    我不确定我是否以最佳方式获得对这些控件的引用.

    PS.抱歉格式不正确但我无法处理C#代码.



    1> Michal Paszk..:

    您的问题是您希望您的按钮既运行服务器端又触发您的JavaScript代码.

    
    

    runat="server"位意味着您将看到页面刷新,因为应用程序将尝试运行服务器端代码,因此消息将清除.

    如果你在普通的html元素上运行代码,这段代码应该可以正常工作.

    IE适用于:

    
    


    @ Cahir09如果此答案已解决您的问题,请单击旁边的勾号将其标记为已接受的答案.见[this](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work).
    推荐阅读
    无名有名我无名_593
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有