NodeJs小试牛刀--聊天室搭建
来源:互联网 发布:java高并发书 编辑:程序博客网 时间:2024/05/18 15:08
最近研究聊天室功能,准备用nodejs实现。下面是自己的尝试!!
- nodejs的安装这里就不详细赘述了。
程序创建
- 引入required模块
var express = require('express');var app = express();var http = require('http').Server(app);
- 创建监听端口
http.listen(8000, function() { console.log('Server running at http://127.0.0.1:8000/');});
- 以上代码我们完成了一个可以工作的 HTTP 服务器。使用 node 命令执行以上的代码:(*就是我们上面代码保存的文件名)
node ****.js
express模块
var express = require('express');var app = express();var http = require('http').Server(app);http.listen(8000, function() { console.log('Server running at http://127.0.0.1:8000/');});
- 这样我们的8000端口就开启这个服务了。下面我们通过socket.io模块实现服务于客户端的交互。
socket.io模块
- 首先io.sockets.on函数接受字符串”connection”作为客户端发起连接的事件,当连接成功后,调用带有socket参数的回调函数。我们在使用socket.IO的时候,基本上都在这个回调函数里面处理用户的请求。
- socket中最重要的两个方法是emit和on方法。
说白了就是发送和接收的方法。在服务端socket.emit就是想客户端发送数据,socket.on就是接收客户端返回的数据。在客户端恰恰相反。
io.on('connection', function(socket) {}
- connect作为客户端发起连接的事件。当连接成功后开始调用带有socket的回调函数。
this.socket = io.connect('ws://127.0.0.1:8000');this.socket.emit('login', { userid: this.userid, username: this.username, userpwd: this.userpwd});
- 客户端对应的就发起这个连接请求。发起连接后客户端向服务端发起一个事件login,并且携带参数对象(userid,username,userpwd)。下面我们看看服务端接收这个事件login
socket.on('login', function(obj) { //obj这个对象就是客户端传递过来的,obj.userid,obj.username,obj.userpwd //我们就可以通过obj这个对象处理相应的登录逻辑处理}
- nodejs主要通过socket来实现服务端和客户端的通信
其他API
- 向所有客户端广播:socket.broadcast.emit(‘broadcast message’);
我们可以通过他实现群内公告等功能。
进入一个房间(非常好用!相当于一个命名空间,可以对一个特定的房间广播而不影响在其他房间或不在房间的客户端):socket.join(‘your room name’);
向一个房间广播消息(发送者收不到消息):socket.broadcast.to(‘your room name’).emit(‘broadcast room message’);
向一个房间广播消息(包括发送者都能收到消息)(这个API属于io.sockets):io.sockets.in(‘another room name’).emit(‘broadcast room message’);
强制使用WebSocket通信:(客户端)socket.send(‘hi’),(服务器)用socket.on(‘message’, function(data){})来接收。
6 0
- NodeJs小试牛刀--聊天室搭建
- NodeJS和Socket.IO搭建聊天室应用
- nodejs入门——搭建一个聊天室应用
- nodejs入门——搭建一个聊天室应用
- 使用nodejs搭建你自己的专属web聊天室
- Nodejs做聊天室
- nodejs+nowjs实现聊天室
- Nodejs入门聊天室
- nodejs+socket.io聊天室
- 聊天室软件设计-nodejs
- nodejs socket.io 聊天室
- 前端之nodejs聊天室
- nodejs实现聊天室
- 即时通讯之Socket.IO的学习,及使用nodejs 搭建websocket 聊天室
- HTML5 WebSocket + NodeJs 实现聊天室
- nodejs多房间web聊天室
- JSP+Nodejs+Socket.IO 聊天室
- nodejs +webSocket 多人聊天室
- C++源码流程图分析[转载]
- myeclipse安装jad插件,实现项目中的所有jar包里的.class文件直接查看
- 打开eclipse的opens the android sdk and avd manager提示错误:error:location of the android sdk has not been
- 希尔排序
- Recurrent Neural Networks - collections
- NodeJs小试牛刀--聊天室搭建
- 安卓解决6.0以后没有setLatestEventInfo方法的解决方案
- springboot+mybatis实现security
- Excel键盘快捷键大全(四)
- 在AndroidStudio中进行单元测试
- 红帽linux 虚拟机的安装
- iOS开发-本地通知与远程通知
- 使用 Protocol Buffer 3 生成 gRPC Java 代码方法
- 编译错误stray ‘\343’ '\200' in program解决办法