当前位置: 首页 > 工具软件 > Koo.js > 使用案例 >

node.js socket通信渲染页面

秋光熙
2023-12-01

socket通信

html
<body>
		<h1> 我是 index 页面,我引用了自动生成的 /socket.io/socket.io.js。脚本文件 </h1>
		<input type="text" value="" id="inp" />
		<button id="btn">点击发送数据给后台</button>
		<script type="text/javascript" src="/socket.io/socket.io.js"></script>
		<script type="text/javascript">
			var socket = io();//前端没有传入任何的服务器  默认会传入当前服务器
			//客户端的   io的实例化  就是相当于  socket的链接
			socket.on('msg3',function (obj) {
				console.log(obj);
			})
			document.getElementById('btn').onclick = function () {
				socket.emit('msg2',document.getElementById('inp').value)
			}
		</script>
	</body>

js

var express = require('express');
var app = express();//实例化一个express的app服务器  创建express服务器 不是必要的  
//为了写服务器代码  比较简单

var fs = require('fs');

var http = require('http');
var http1 = http.Server(app);//把app的这个服务器传到 原生的http服务器中 

var io = require('socket.io');//引用socket.io模块
var socket  = io(http1);//socket的实例化  创建了 以http1  为服务器的  socket的  协议服务器

app.get('/',function (req,res) {
	fs.readFile('./index.html',function (err,data) {
		if(err){
			throw err;
		}
		res.end(data);
	})
})

//socket也是需要做一个监听  链接的监听
socket.on('connection',function (socket) {
	
//	socket.emit  代表是发送的数据的方法来的
//	第一个参数  是  标识符来的  
//  第二个或者其他第三个以上的参数  都是想要去传递的   数据来的
	var obj = {name:'koo'};
	//socket.emit('msg11',obj)
	socket.on('msg2',function (data) {
		//console.log(data);
		socket.broadcast.emit('msg3',data);
	})
	
	//socket.broadcast.emit
	//广播消息  发送给除了当前发送端之外  所有的客户端
	
	
//	socket.on   代表监听的方法来的
	//第一个参数  也是标识符
//	socket.on('msg11',function (obj) {
//		
//	})
	console.log('已经有用户连接上了')
})

http1.listen(8081);
 类似资料: