超简单实例使用websocket进行server和client实时通信
文章图片
- server端
//app.js
var ws = require('nodejs-websocket');
var server = ws.createServer(function(conn){
console.log('connected');
conn.on('text',function(str){
console.log(str);
//conn.sendText(str);
//将接收道德str用sendText方法传给接收到的一个连接
//boardcast(str);
//调用广播方法将节后到的传给所有的浏览器var data = https://www.it610.com/article/JSON.parse(str);
switch (data.type){
case'chat':
//boardcast(conn.nickname + '说:' + data.text);
boardcast(JSON.stringify({name:conn.nickname,text:conn.nickname + '说:' + data.text}));
break;
case 'setname':
conn.nickname = data.name;
//boardcast(data.name+'加入了房间');
boardcast(JSON.stringify({text:data.name+'加入了房间',name:conn.nickname}));
break;
}});
// setTimeout(function(){
//conn.sendText('来自服务端的消息!');
// },3000);
conn.on('close',function(){
boardcast(JSON.stringify({name:conn.nickname,text:conn.nickname+'退出了房间'}));
});
conn.on('error',function(err){
console.log(err);
});
}).listen(2333);
/**
* 这个connections是一个数组包含我们所有的连接
*/
//我们来写一个广播吧
function boardcast(str){
server.connections.forEach((conn) => {
conn.sendText(str);
});
}
//index.html
测试一下websocket - 锐客网
github链接:https://github.com/smileyqp/websocketUsage
推荐阅读
- 为什么你的路演总会超时()
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 科学养胃,别被忽悠,其实真的很简单
- opencv|opencv C++模板匹配的简单实现
- 松软可口易消化,无需烤箱超简单,新手麻麻也能轻松成功~
- 原生家庭之痛与超越
- 简单心理2019春A期+32+张荣
- 《算法》-图[有向图]
- BNC公链|BNC公链 | Eth2.0测试网Topaz已质押超100万枚ETH
- android防止连续点击的简单实现(kotlin)