socket.io建立长连接

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

示例代码,客户端

 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这个字符串,这个相当这段消息的名字,只能接收同一个名字的消息

 
时间: 2024-10-26 10:47:22

socket.io建立长连接的相关文章

Socket服务端口长连接最多能支持多少?

答案是无限的.视服务端的资源而不同. 以前一直认为服务端在Accept客户端连接后,会开启一个新的端口与客户端建立链路,但这是错误的.事实上,一个连路是由Server IP+server Port + client IP + client port唯一定义.那么监听服务打开80时意味着这个服务打开了一个文件,当有client接入时,只要没有重复的链路,都会创建一个新链路,那么对于server端还是同一个端口,与客户端实现了同一个服务端口与不同的client建立了长/短连接的链路. 而以前在用C写

Socket如何保证长连接

方法1:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测连接是否正常,大致的方法是:服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的数据包,然后启动一个低级别的线程,在该线程中不断检测客户端的回应, 如果在一定时间内没有收到客户端的回应,即认为客户端已经掉线:同样,如果客户端在一定时间内没 有收到服务器的心跳包,则认为连接不可用. 方法2:TCP的KeepAlive保活机制因为要考虑到一个服务器通常会连接多个客户端,因此由用户在应用层自己实现心跳包,代码较多 且稍显复杂,而利

WebSocket IO和后端建立长连接,即时接受后端消息

https://github.com/TooTallNate/Java-WebSocket ant得到java_websocket.jar改名为WebSocket.jar放到 https://github.com/Gottox/socket.io-java-client/ 项目libs中再ant jar生成socketio.jar,用这个替换pomelo-androidclient中libs的socketio.jar

有关PHP不利于和MYSQL建立长连接的原因

http://www.tuicool.com/articles/iUrERn2 http://rango.swoole.com/archives/265

【转载】http和socket之长连接和短连接

TCP/IP TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有:TCP包括FTP.HTTP.TELNET.SMTP等协议                  UDP包括DNS.TFTP等协议 短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接. 也可以这样说:短连接是指SO

TCP/IP,http,socket,长连接,短连接

TCP/IP TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有:TCP包括FTP.HTTP.TELNET.SMTP等协议                  UDP包括DNS.TFTP等协议 短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接. 也可以这样说:短连接是指SO

http和socket之长连接和短连接区别

TCP/IP TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有:TCP包括FTP.HTTP.TELNET.SMTP等协议                  UDP包括DNS.TFTP等协议 短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接. 也可以这样说:短连接是指SO

TCP/IP,http,socket,长连接,短连接——小结(转)

概要: 之前对这几个概念有点糊涂,查阅了些资料,稍微概括下他们的区别吧.如有错误,请拍~~~ 先看图: TCP/IP是什么? TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层.    在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议.    在传输层中有TCP协议与UDP协议.    在应用层有FTP.HTTP.TELNET.SMTP.DNS等协议. Socket是什么呢? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,一组接口,把复杂的T

http和socket之长连接和短连接区别【转】

转自:https://blog.csdn.net/mengyafei43/article/details/25195445 TCP/IP TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有:TCP包括FTP.HTTP.TELNET.SMTP等协议                  UDP包括DNS.TFTP等协议 短连接 连接->传输数据->关闭连接 H