signal 聊天记录_实时查看车辆位置app

signal 聊天记录_实时查看车辆位置app开发工具与关键技术:js作者:GuanLW撰写时间:2022/3/18第一步:先在vs的NuGet包中下载安装Microsoft.AspNet.SignalR。第二步:右键项目->新建项,选择signalr集线器类,并写入代码,namespace与类名记得改成实际类名如下:usingMicrosoft.AspNet.SignalR;usingMicrosoft.AspNet.SignalR.Hubs;usingSystem;usingSystem.C

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

开发工具与关键技术: js

作者:GuanLW

撰写时间:2022/3/18

第一步:先在vs的NuGet包中下载安装Microsoft.AspNet.SignalR。安装完成后会多以下几个文件

signal 聊天记录_实时查看车辆位置app

 

第二步:右键项目->新建项,选择signalr集线器类,并写入代码,namespace与类名记得改成实际类名

如下:

using Microsoft.AspNet.SignalR;

using Microsoft.AspNet.SignalR.Hubs;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;



namespace webLoans

{

    [HubName("msgHub")]//客户端调用,首字母要小写

    public class MsgHub : Hub

    {

        //在hub中编写的方法,都是要被客户端调用的方法

        [HubMethodName("sendMsg")]//客户端调用,首字母要小写

        public void SendMsg(string name, string txt)

        {

            //服务器主动调用客户端的方法,即客户端必须有getMsg方法

            Clients.All.getMsg(name, txt);

        }

    }

}

第三步:右键项目,新建普通类Startup.cs

如下:

using Microsoft.Owin;

using Owin;

using System;

using System.Threading.Tasks;



[assembly: OwinStartup(typeof(webLoans.Startup))]



namespace webLoans

{

    public class Startup

    {

        public void Configuration(IAppBuilder app)

        {

            // 有关如何配置应用程序的详细信息,请访问 https://go.microsoft.com/fwlink/?LinkID=316888

            app.MapSignalR();

        }

    }

}

这时可以先测试一下,运行项目,在网页中输入地址https://localhost:44340/signalr/hubs,注意填入实际端口号。网页显示部分内容如下:

signal 聊天记录_实时查看车辆位置app

第四步:编写html页面,代码如下:

@{

    Layout = null;

}



<!DOCTYPE html>



<html>

<head>

    <meta charset="utf-8" />

    <title></title>

    <script src="~/Scripts/jquery-1.6.4.js"></script>//实际的路径

    <script src="~/Scripts/jquery.signalR-2.4.3.js"></script>//实际的路径

    <script src="/signalr/hubs"></script>//动态生成的

    <script>

        //绑定登录按钮的事件

        $(function () {

            $("#btnLogin").click(function () {

                login();

            });



        });



        function login() {

            if ($("#txtName").val().length > 0)

                sessionStorage.setItem("user", $("#txtName").val());

            else {

                alert("登录失败");

                return;

            }

            $("#sendBtn").removeAttr("disabled");

            serverClient();

        }



        //服务器连接操作

        function serverClient() {

            //注册服务器连接

            var msgHub = $.connection.msgHub;

            //2.给客户端注册方法,被服务器调用的方法,

            //服务器主动调用给txt内容,客户端被动接收

            //接收到之后做什么

            msgHub.client.getMsg = function (name, txt) {

                //var txtTemplate = "<div><span>{
  
  {name}}</span>:<span>{
  
  {content}}</span></div> ";

                //var html = txtTemplate.replace('{
  
  {name}}', name).replace('{
  
  {content}}', txt);

                //$("#msgList").append(html);

                var txtHtml = '<li><strong>' + htmlEncode(name)

                    + '</strong>: ' + htmlEncode(txt) + '</li>';

                $("#msgList").append(txtHtml);

                //alert(txt);

            }



            //3.启动连接并绑定处理事件

            $.connection.hub.start().done(function () {



                $("#sendBtn").click(function () {

                    msgHub.server.sendMsg(sessionStorage.getItem("user"), $("#txtMsg").val());

                    $('#txtMsg').val('').focus();

                })

            }).fail(function () {



            });

        }



        // 将发来的信息转化为html标签以便添加到页面

        function htmlEncode(value) {

            var encodedValue = $('<div />').text(value).html();

            return encodedValue;

        }



    </script>

</head>

<body>

    <div id="msgList">



    </div>

    <input type="text" id="txtName" name="name" value="" />

    <button id="btnLogin">登录</button>

    <input type="text" id="txtMsg" name="name" value="" />

    <button id="sendBtn" disabled="disabled">发送消息</button>



</body>

</html>

注意头部引用的脚本,前两个是你的项目中的实际脚本文件,最后一个是在运行时动态生成的,实际使用时需要修改前两个。

第五步:打开两个网页进行测试,效果如下:

先输入登录名,然后发送信息即可。可以实时聊天。

signal 聊天记录_实时查看车辆位置app

这是我所学到的一些知识,在此分享给大家,希望可以帮助到你们。

以上就是我的分享,新手上道,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问喔!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180104.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ccs软件的使用(靠谱挣钱的app软件)

    1.使用CCS3.3编译TI的28335,产生如下警告:warning:entry-pointsymbolotherthan”_c_int00″specified: “code_start”一种解决方法,不用管它,因为C入口地址最终是由用户的CMD文件覆盖的,警告不影响使用。二是,在编译选项里面link标签页,把CodeEntryPoint(-e)编辑框

    2022年4月15日
  • 【离散数学】单射、满射与双射

    【离散数学】单射、满射与双射本文目录1、什么是映射?1、什么是映射?我们考虑这样的关系:对于集合X中的每一个元素,都有唯一的属于集合Y中的元素被其所指向,我们就称这样的关系叫映射(英:mapping,日:写像(しゃぞう))。这是用很通俗的语言解释定义的映射,而相信大家也都在高中数学必修1里面学过,对映射这个概念想必也都不陌生吧!从这个定义中,你能get到什么信息呢?①“X集合中的每一个元素”:如果有集合X的元素不对应集合Y的某个元素的,则不是映射。②“都有唯一的Y与之对应”:如果有集合X的元素同时指向了集合Y中的两个以上个元

    2022年6月10日
  • 六个主要的社会网络分析软件的比较

    六个主要的社会网络分析软件的比较
    UCINET简介  
        UCINET为菜单驱动的Windows程序,可能是最知名和最经常被使用的处理社会网络数据和其他相似性数据的综合性分析程序。与UCINET捆绑在一起的还有Pajek、Mage和NetDraw等三个软件。UCINET能够处理的原始数据为矩阵格式,提供了大量数据管理和转化工具。该程序本身不包含网络可视化的图形程序,但可将数据和处理结果输出至NetDraw、Pajek、Mage和KrackPlot等软件作图。UCINET包含大量包括探测凝聚子群(cliq

    2022年6月21日
  • 小米手机解锁BL以及获取Root权限(开发版)

    小米手机解锁BL以及获取Root权限(开发版)已经很久没有刷机了,现在有需要,就再刷一下。想起来自己以前刷机很流畅,现在还得查来查去的。所以就写了以下教程,主要是记录一下自己踩过的一些坑。我刷的手机是小米8,所以以下教程都是小米8为例,其他手机可能还有细微不同之处…….一、解锁BL:这是官方教程,很详细!我就是在教程中,把自己踩过的一些坑给罗列一下,增加一下自己的印象。解锁Bootloader的步骤:解锁前,请将版…

    2022年6月3日
  • idea激活码2021【2021.8最新】

    (idea激活码2021)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~B…

    2022年3月22日
  • Day03,Python文件的常见操作

    Day03,Python文件的常见操作Day03,Python文件的常见操作

    2022年4月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号