Socket.IO文档(1)

Get Started: Chat application

根据指南,我们来创建一个聊天应用。

Introduction

使用流行的技术栈(例如PHP)去写一个聊天应用传统意义上是比较难的。这样涉及到了服务器的轮询,跟踪时间戳,而且应该是比较慢的。
Socket解决了大多数的实时聊天方案,在客户端和服务端提供实时的双向通道。这就意味着服务端可以向客户端推送消息。当你发送一条消息,服务端可以获得然后推送到其他连接的客户端。

The web framework

第一步就是创建一个html页面,提供表单和消息列表。我们准备使用node的web框架express。首先创建package.json配置文件。

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

然后安装express:

npm install express --save-dev

express安装后,我们在当前目录下创建一个index.js文件设置我们的应用。

var app = require('express')()
var http = require('http').Server(app)

app.get('/', function(req, res) {
    res.send('

hello world

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

如上:express初始化一个应用程序是可以提供给http服务的函数处理程序;我们定义了一个路由当我们进入主目录时被调用;我们创建了一个监听3000端口的http服务。
我们执行node index.js可以看到:

clipboard.png
打开浏览器,输入http://localhost:3000可以看到:

Socket.IO文档(1)_第1张图片

Serving HTML

目前,我们准备在index.js文件中调用res.send()发送一个html字符串。如果我们把整个html字符串都放在里面,那样看起来会很混乱。那么,我们准备创建一个index.html文件,然后发送。

//这里我们通过sendFile这个方法
app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html');
});
``
创建index.html文件:



Socket.IO chat



    然后重启服务,打开浏览器可以看到如下:
    
    ![clipboard.png](/img/bVXQoz)
    
    ##### **Integration Socket.IO**
    Socke.IO有两部分组成:
    1. 服务端通过node模块socket.io集成
    2. 客户端通过socket.io-client库加载
    在开发期间,socket.io会自动的服务客户端,所以目前我们只要安装该模块:

    npm install socket.io --save-dev

    然后重新修改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(req, res) {

    console.log('a user connected')

    })

    http.listen(3000, function() {

    console.log('listening on 3000')

    })

    如上,可以看到传入http服务初始化一个socket.io实例,然后通过connection事件监听新连接。
    然后再修改以下index.html文件,在后插入以下代码:


    你可能感兴趣的:(socket.io)