socket.io——两种方法实现简单聊天应用

第一种方法

1、安装socket.io和express

npm install socket.io
npm install --save express

 2、创建package.json

{
  "name": "socket-chat-example",
  "version": "0.0.1",
  "description": "my first socket.io app",
  "dependencies": {}
}
    

3、新建index.js

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
  console.log('a user connected');
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

io.on('connection', function(socket){
  socket.on('chat message', function(msg){
    console.log('message: ' + msg);
  });
});

io.on('connection', function(socket){
  socket.on('chat message', function(msg){
    io.emit('chat message', msg);
  });
});

4、新建index.html




	
		Socket.IO chat
		
	

	
		

    5、测试

    运行

    node index

    浏览器访问

    http://localhost:3000

    socket.io——两种方法实现简单聊天应用_第1张图片

     参考地址:https://www.w3cschool.cn/socket/socket-ulbj2eii.html 

    第二种方法

    index.js

    var http = require("http")
    	,socket = require("socket.io")
    	,fs = require("fs");
    var app,io;
    	app = http.createServer(function(req, res) {
    		//读取本程序运行位置的client.html文件
    		fs.readFile(__dirname+"/index.html",function(err, data){
    			res.writeHead(200);//设置200HTTP状态
    			res.end(data);
    		});
    	});
    	//Http服务器绑定的端口
    	app.listen(3000);
    	io = socket.listen(app);
    	//设置socket.io日志级别
    	io.set("log level", 1); 
    	//监听链接事件
    	io.sockets.on("connection",function(socket){
    		//响应客户端msg事件
    		socket.on("msg",function(data){
    			console.log("Get a msg from client ...");
    			//控制台输出接受到的数据,实际项目可无
    			console.log(data);
    			//把收到的信息广播出去
    			socket.broadcast.emit("chat message",data);
    		});
    	});
    	

    index.html

    
    
    
    	
    		简易聊天室
    		
    		
    		
    		
    	
    
    	
    		

    简易聊天室

    socket.io——两种方法实现简单聊天应用_第2张图片

    你可能感兴趣的:(node.js)