Node.js、Express、Socket.io 入门
2016-05-30 18:47
573 查看
http://www.cnblogs.com/sword-successful/p/4987124.html
前言
周末断断续续的写了第一个socket.io Demo。初次接触socket.io是从其官网看到的,看着get started做了一遍,根据官网的Demo能提供简单的服务端和客户端通讯。 这个Demo的过程中用到最多的就是订阅事件、触发事件、广播事件。根据官网完成Demo后,看到下面提到了几个问题,又继续实现了四个功能,其它几个还要继续实现。
①、当有新用户登录或离开时广播消息。
②、添加昵称。我在demo中的做法是把用户输入的第一条消息作为昵称。
③、发送消息时自己发送的消息不再给自己发送,其实也就是只调用广播(socket.broadcast.emit)消息的方法即可。
④、显示当前在线用户和在线人数。
开发环境
node:0.12.7express:4.13.7
socket.io:1.3.7
官网Demo中遇到的问题
①、客户端html页面<script src="/socket.io/socket.io.js"></script>这样引用js代码没搞明白,百度搜索了一下,有人解释说是因为express提供的框架转化了路径,所以你这样做是可以引用到该js的,刚接触应该会感到意外,但是我实验如果你只是引用了express而不是用express创建项目的话可能还是不管用。
②、在体验Demo并且看其他人写的例子中发现,很多情况下客户端和服务端触发的事件名称都相同,不理解这种情况他们是同一个事件吗? 会不会产生冲突呢?
效果图
1、系统初始化,当你打开页面时会提示你连接至服务器,你输入第一条消息就是昵称。2、输入昵称,以同样的方式再打开几个Tab页,输入昵称。
3、两个客户端聊天
服务端实现
客户端实现
总结
做这个Demo的过程中,感觉目前用到最多的就是订阅事件和发布事件,然后客户端和服务端接受相应的参数,另外一个就是服务端和客户端通信可以完全用JSON格式传参,的确很方便。 目前掌握的方法就是socket.emit()和socket.broadcast.emit(),还没有搞明白emit()和send()的区分。提供代码下载地址:http://pan.baidu.com/s/1mgm12Rm
相关文章推荐
- 读书笔记之《深入浅出Node.js》(2)
- nodejs的express使用介绍
- leetcode 24. Swap Nodes in Pairs
- nodejs那些事
- node 常用
- express不是内部或外部命令,也不是可运行的程序或批处理文件
- Node.js 手册查询-4-Express 方法
- Node学习笔记(一):stream流操作
- node.js stream 加解密
- hadoop中datanode无法启动
- Swap Nodes in Pairs
- Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具
- node 基础process
- C# TreeView nodeMouseClick 的使用
- [leetcode] 237. Delete Node in a Linked List
- Hdfs(NameNode&DataNode)和Hive迁移总结
- Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具
- node.js之express-安装和helloword实例
- [nodejs]mongoose学习1
- nodeName - nodeValue