这不是一个项目而是一个适合初学者学习的例子,主要实现了以下基本功能:
1:群聊,每一个人都可以收到其他人的消息,以及可以发消息给其他人,每一个人用ip地址标识。
2:显示当前在线用户。
3:每一个用户登入登出,其他人都可以看到。
4:每一个用户可以看到其他人是否正在输入消息。
实现方式没有选择低效的轮询方式,而是采用基于websocket协议的socket.io模块,websocket协议允许在客户端与服务端之间建立一个全双工的通信通道,因此服务端可以主动推消息给客户端。相比传统的轮询,实时性更好。
前端代码如下:
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font: 13px Helvetica, Arial; }
form { background: #fc5bff; padding: 2px; position: fixed; bottom: 0; width: 100%; }
form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
form button { width: 9%; background: rgb(217, 222, 221); border: none; padding: 10px; }
#message