搜索

有思俱乐部学习园地

Node.js socket

socket 即时通讯应用

socket常用方法

1、io.sockets.emit() //给所有在线的用户发送消息 包括发送者 2、socket.emit() //给当前请求的用户发送消息 3、socket.join("some room") //加入房间 4、socket.leave('some room') //离开房间 5、socket.broadcast.emit() //给所有连接用户发送消息 除了发送者 这里我们使用一个案例进行对socket 即时通讯应用的了解,我们就使用一个聊天室的一个案例进行讲解。 先讲个大概的思路 功能:用户列表=>发送消息=>接受消息=>私聊用户 1、用户连接服务器 => 判断用户是否为第一次访问 => 第一次访问就让其设置用户信息(头像、名称) 2、设置完用户信息后 => 将用户信息发送并保存至服务器上(用个变量进行存储、用于显示用户列表、还需要存储 用户的socket、用户id用于私聊用户) 3、将用户列表的变量发送给所有的客户端 => 客户端获取到所有的用户列表名称和头像后 => 将其进行字符串拼接(div) =>然后添加至显示用户列表 4、输入聊天内容,点击发送消息 => 获取到cookie中的(头像、名称、id)和接受人的id(公共聊天就用“all”,私聊就用私聊人的id) => 发送消息给服务器 5、服务器进行判断是公共聊天还是私聊,公共聊天就用上面的方法 1 ,私人聊天就根据id去存储至服务器上的变量找到那个用户socket => 服务器发送消息给客户端后,客户端通过接受人的id,进行判断是否是自己的id,自己的id就是自己发送的,不是自己的id就是他人发送的
这里将会用到express、socket.io模块,需要另外安装,cmd命令行安装。
安装命令: npm install express 安装express模块 下图为效果图 Alternate Text

后端引用示例代码:

var express = require('express')                //引入express模块
var http = require("http")                      //引入http模块
var app = express()
app.use('/', express.static('./public'));	//设置静态资源路径

var server = http.createServer(app)
    server.listen(3000,'0.0.0.0');          //监听端口3000

var io = require('socket.io').listen(server); //引入socket.io模块并绑定到服务器

io.on('connection',function(socket){//服务器连接进入的回调
    socket.on("xiaoxi",function(r){//  服务器进行接收的方式   xiaoxi 是名称   r为参数
    });
    socket.emit("hello","hello")//发送消息给客户端  hello 是名称   hello是参数
});


前端引用示例代码:

需要引用socket.io.js文件,  /socket.io/socket.io.js

var socket = io.connect();
socket.emit("xiaoxi","hello");//发送消息给服务器  xiaoxi 是名称   hello是参数
socket.on("hello",function(r){});//接收服务器发送至客户端的方式 hello 是名称  r是参数


新建app.js文件
新建public文件夹跟app.js同目录下
public文件夹下面新建index.html
public文件夹下面新建main.js
public文件夹下面新建style.css
到app.js,F5 运行项目
Alternate Text
下图是演示图
Alternate Text

工作人员

 
        
作者:赖文剑
信息录入:赖文剑
文案编辑:XXX
视频录制:XXX
视频编辑:XXX
图片编辑:XXX
关键字修改:陈鑫