基于node的websocket学习笔记三:scoket.io基础与利用scoket.io构建聊天程序示例
2017-11-05 20:49
633 查看
一、socket.io基础
首先来看一下官方例子-
html代码如下:
node服务端代码如下:
客户端可以收到服务端发送过来的信息,;服务端也可收到客户端发送过来的信息,。
可以通过最简单的socket.on()来接受我们的广播信息,第一个参数是接受定义的出发事件,第二个参数是接受参数的回调。这里出发的事件名称可以自己定义。socket.emit(),就是想链接的用户推送信息,也是接受两个参数,参数类型和socket.on()一模一样。我们客户端和服务端的通信,就是通过定义相同的出发事件来进行通信的。
在node服务端中。io.on('connection',function(socket){});这个语法是固定的,创建一个socket.io的链接,一下就是处理链接的逻辑。
这里有一篇文章对socket.io的常用API方法一下做简略介绍:
http://www.cnblogs.com/xiezhengcai/p/3956401.html
2、基于socket.io 搭建简单的聊天室程序
html代码如下:
node后端代码如下:
首先来看一下官方例子-
html代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>webSocket</title> <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> </head> <body> <script> var socket=io('ws://localhost:3000'); socket.on('news',function(data){ console.log(data); socket.emit('my other event',{ my:'data' }) }) </script> </body> </html>
node服务端代码如下:
var app=require('http').createServer(); var io=require('socket.io')(app); app.listen(3000); io.on('connection',function(socket){ socket.emit('news',{ hello:'word' }); socket.on('my other event',function(data){ console.log(data) }) });启动服务之后,我们可以打开控制台:
客户端可以收到服务端发送过来的信息,;服务端也可收到客户端发送过来的信息,。
可以通过最简单的socket.on()来接受我们的广播信息,第一个参数是接受定义的出发事件,第二个参数是接受参数的回调。这里出发的事件名称可以自己定义。socket.emit(),就是想链接的用户推送信息,也是接受两个参数,参数类型和socket.on()一模一样。我们客户端和服务端的通信,就是通过定义相同的出发事件来进行通信的。
在node服务端中。io.on('connection',function(socket){});这个语法是固定的,创建一个socket.io的链接,一下就是处理链接的逻辑。
这里有一篇文章对socket.io的常用API方法一下做简略介绍:
http://www.cnblogs.com/xiezhengcai/p/3956401.html
2、基于socket.io 搭建简单的聊天室程序
html代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>webSocet</title> <script src="../socket.io-1.4.5.js"></script> </head> <body> <h1>Chat Room</h1> <input type="text" id="sendTxt"> <button id="sendBtn">发送</button> <script> //建立连接 let socket = io('ws://localhost:3000/'); //发送信息给后端服务 document.getElementById('sendBtn').onclick = function () { var text = document.getElementById('sendTxt').value; if (text) { socket.emit('message', text); } }; //进入聊天室 socket.on('enter', function (data) { showMessage(data, 'enter') }); //获得消息 socket.on('message', function (data) { showMessage(data, 'message') }); //离开聊天室 socket.on('leave', function (data) { showMessage(data, 'leave') }); //客户端渲染辅助函数 function showMessage(str, type) { var div = document.createElement('div'); div.innerHTML = str; if (type === 'enter') { div.style.color = 'blue'; } else if (type === 'leave') { div.style.color = 'red' } document.body.appendChild(div); } </script> </body> </html>
node后端代码如下:
var app=require('http').createServer(); var io=require('socket.io')(app); var port=3000; var clientCount=0;//客户的个数 app.listen(port); //开启socket.io的链接 io.on('connection',function(socket){ clientCount++; socket.nickName='user'+clientCount; //socket.emit()是想客户端发送信息,io.emit是想所有链接客户广播信息 io.emit('enter',socket.nickName+'comes in'); socket.on('message',function(str){ io.emit('message',socket.nickName+': '+str); }); socket.on('disconnect',function(){ io.emit('leave',socket.nickName+' leave') }); }); console.log('webSocket server listening on port '+port);启动服务后,本地打开页面就可以访问了。
相关文章推荐
- 基于node的websocket学习笔记二:一个简单的聊天室程序与优化方案
- 基于node的websocket学习笔记一:基础概念和第一个websocket应用demo示例
- 孙鑫VC学习笔记:第十五讲 编写一个基于MFC对话框的聊天程序
- 利用rpcgen构建分布式程序的8个步骤---学习笔记
- SuperSocket框架学习笔记3-构建Unity3D__WebSocket4Net客户端程序
- 孙鑫VC学习笔记:第十五讲 (四) 编写一个基于MFC对话框的聊天程序
- Node.JS 利用socket.io 实现dj播放及聊天程序 代码
- 孙鑫VC学习笔记:第十五讲 编写一个基于MFC对话框的聊天程序
- 基于Node.js + socket.io实现WebSocket的聊天DEMO
- Android开发学习笔记(三)——基于Eclipse开发环境的搭建及HelloAndroid示例程序的创建
- T-SQL学习笔记-程序设计基础-流程控制语句
- AS3.0基础学习笔记(1):开始第一程序
- Effective C# 学习笔记(五十)构建小型内聚程序集
- 重新整理后的Oracle OAF学习笔记——4.应用构建基础之实现视图
- OpenCV学习笔记(13)基于OpenCV2.1的MFC双目视觉平台构建
- unix学习笔记<2> 多线程 udp聊天程序 简单实例
- s3c2440硬件学习笔记----嵌入式Linux基础知识和开发环境的构建
- j2me学习笔记【1】——helloworld程序示例
- Nebula3学习笔记(5): IO实战, ZIP解压缩程序
- JAVA高级视频_IO输入与输出 Java程序与其他进程的数据通讯 学习笔记