socket.io建立长连接

摘要:
插座io基于node.js。输入npmsocket。io在命令行中下载模块,并使用node。js构建背景示例代码。客户端1˂!客户')29});3031}); 32服务器。听注意:服务器和客户端都使用套接字。emit()发送消息;插座on()接收消息服务器:套接字。mit('system','hello!Client')客户端:套接字打开;这两段代码对应。服务器发送消息,客户端接收到消息的密钥是字符串系统,该字符串系统相当于消息的名称。只能接收同名邮件

   socket.io是基于node.js,在命令行里输入npm socket.io下载模块,用node.js搭建后台

socket.io建立长连接第1张

示例代码,客户端

 1 <!DOCTYPE html>
 2 <html lang="zh-CN">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Node.js</title>
 6     <script type="text/javascript" src="/socket.io/socket.io.js"></script>
 7 </head>
 8 <body>
 9 欢迎进入<br><br>
10 <input type="button" value="向服务器发送消息" onclick="sendMyMessage()"><br>
11 <input type="button" value="提醒服务器给我发送信息" onclick="sendMessage()"><br>
12 </body>
13 </html>
14 
15 <script type="text/javascript">
16 
17     //和服务器建立长连接
18     var socket = io.connect('/');
19 
20     //向服务器端发送自定义消息
21     function sendMyMessage(){
22         socket.emit('custom', '我是客户端的消息');
23     }
24 
25     function sendMessage(){
26         socket.emit('server', '我是客户端,给我发送一个信息');
27     }
28 
29     //接收服务器推送来的消息
30     socket.on('system', function(data){
31         alert(data)
32     });
33     //接收服务器推送来的消息
34 
35     var num1 = 0;
36 
37     socket.on('test1', function(data){
38         num1++
39         console.log(data+num1)
40     });
41 
42 
43     //和服务器建立长连接
44     //socket.on('connect', function(){});
45 </script>

服务器端代码

 1 //初始化系统库(引包)
 2 var express      = require('express');
 3 var app = express();
 4 var server       = require('http').createServer(application);
 5 //引入socket.io这个包
 6 var socketio     = require('socket.io')(server);
 7 var path = require("path");
 8 //加载前端文件index.html
 9 
10 //设置静态路径
11 app.use(express.static(path.join(__dirname, "views")));
12 app.get('/index', function(request, response){
13     response.sendFile('./views/index.html');
14 });
15 
16 //监听用户连接事件
17 socketio.on('connection', function(socket){
18     //设置房间,获取用户当前的url,从而截取出房间id
19     //var url = socket.request.headers.referer;
20 
21     //接收客户端发送来的消息
22     socket.on('custom', function(data){
23        console.log(data)//我是客户端自定义的消息
24     });
25 
26     socket.on('server', function(data){
27         //向客户端发送消息
28         socket.emit('system', 'hello!客户端')
29     });
30 
31 });
32 server.listen(9004);

注:服务器端和客户端都用socket.emit()发送消息;socket.on()接收消息

服务器端:socket.emit('system', 'hello!客户端')
客户端:socket.on('system', function(data){
alert(data)
});
这两段代码对应,服务器发送消息,客户端接说消息
关键在于system这个字符串,这个相当这段消息的名字,只能接收同一个名字的消息


 

免责声明:文章转载自《socket.io建立长连接》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇delphi中dbradiogroup用法圆的反演变换(HDU4773)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

你不知道的 Blob

来自公众号:全栈修仙之路 如果你允许用户从你的网站上下载某些文件,那你可能会遇到 Blob 类型。为了实现上述的功能,你可以很容易从网上找到相关的示例,并根据实际需求进行适当的调整。对于部分开发者来说,在完成上述功能之后,他们并不会继续思考 Blob 是什么? 这就导致了一些开发者,还是停留在熟练使用 API 的层面,当遇到比较棘手的问题时,就束手无策...

Svg 画图(电池)

公司现在在做充电桩项目,其中要显示充电桩的电池充电情况,功能展示的时候要画图,之前做的时候准备使用HightChar来画,但是,hightchar好像没有这样的电池图形,最后,项目经理要我自己通过svg画,所以到网上找了一些网址学习svg,其中就有:点击这里,下面我就粘贴下代码和显示图片效果,希望能够帮助到一些朋友。 这里显示的是js文件: $(funct...

C#基础(六)——值类型与引用类型

CLR支持两种类型:值类型和引用类型。 值类型包括C#的基本类型(用关键字int、char、float等来声明),结构(用struct关键字声明的类型),枚举(用enum关键字声明的类型);而引用类型包括类(用class关键字声明的类型)和委托(用delegate关键字声明的特殊类)等。 C#中的每一种类型要么是值类型,要么是引用类型。所以每个对象要么是值...

浅析vue数据绑定

前言:最近团队需要做一个分享,脚进脑子,不知如何分享。最后想着之前一直想研究一下 vue 源码,今天刚好 “借此机会” 研究一下。 网上研究vue数据绑定的文章已经非常多了,但是自己写一遍,敲一遍demo和看别人的文章是完全不同的,so……搬运工来了 目前数据绑定主要有以下三种实现方式: 1.   脏值检查(angular.js)    轮询检测数据变化...

拉依达准则 剔除异常点

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Tool { /// <summary> /// 拉依达准则 剔除异常数据 /// </summary> public class...

小程序:前端防止用户重复提交&amp;amp;即时消息(IM)重复发送问题解决

背景: 最近参与开发的小程序,涉及到即时消息(IM)发送的功能; 聊天界面如下,通过键盘上的【发送】按钮,触发消息发送功能 问题发现: 功能开发完毕,进入测试流程;测试工程师反馈说: 在Android手机上,在极短的时间内频繁点击键盘上的【发送】按钮,消息会重复发送;IOS上该问题不太明显 本以为是普通的防重复提交问题,于是自然想到通过设定flag/js...