加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

node.js中使用socket.io的方法

发布时间:2016-11-24 09:22:31 所属栏目:Linux 来源:站长网
导读:使用socket.io的使用创建一个socket.io服务器即可.但是该服务器依赖于一个已经创建的http服务器. 在http服务器运行之后,使用listen方法为该http服务器附加一个socket.io服务器. 复制代码 代码如下: var sio=require("scoket.io"); var socket=sio.listen(s

使用socket.io的使用创建一个socket.io服务器即可.但是该服务器依赖于一个已经创建的http服务器.

在http服务器运行之后,使用listen方法为该http服务器附加一个socket.io服务器.

复制代码 代码如下:
var sio=require("scoket.io");
var socket=sio.listen(server);

socket就是在server基础上创建的一个socket.io服务器.

当客户端与服务器端建立连接时,触发socket.io服务的connection事件.

复制代码 代码如下:
socket.on("connection",function(socket){
});

回调函数中的socket参数是服务器端与客户端建立连接的socket端口对象.

当接收到客户端发送的消息时,发出socket端口对象的message事件.

复制代码 代码如下:
socket.on("message",function(msg){
});

回调函数的参数是客户端发送的消息.

可以使用socket.send(msg)向客户端发送一个消息.

当服务器端可客户端的连接断开时触发disconnect事件.

复制代码 代码如下:
socket.on("disconnect",funciton(){
});

该回调函数不适用任何参数.

服务器端server.js代码:

复制代码 代码如下:
nbsp;var http=require("http");
nbsp;var sio=require("socket.io");
nbsp;var fs=require("fs");
nbsp;var server=http.createServer(function (req,res) {
nbsp;nbsp;nbsp;nbsp; res.writeHead(200,{"Content-type":"text/html"});
nbsp;nbsp;nbsp;nbsp; res.end(fs.readFileSync("./index.html"));
nbsp;});
nbsp;server.listen(1337);
nbsp;var socket=sio.listen(server);
nbsp;socket.on("connection", function (socket) {
nbsp;nbsp;nbsp; console.log("客户端建立连接");
nbsp;nbsp;nbsp;nbsp; socket.send("你好");
nbsp;nbsp;nbsp;nbsp; socket.on("message", function (msg) {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; console.log("接收到一个消息:"+msg);
nbsp;nbsp;nbsp;nbsp; });
nbsp;nbsp;nbsp;nbsp; socket.on("disconnect", function () {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; console.log("客户端断开连接.");
nbsp;nbsp;nbsp;nbsp; });
nbsp;});

创建客户端index.html代码:

复制代码 代码如下:
nbsp;lt;!DOCTYPE htmlgt;
nbsp;lt;htmlgt;
nbsp;lt;head lang="en"gt;
nbsp;nbsp;nbsp;nbsp; lt;meta charset="UTF-8"gt;
nbsp;nbsp;nbsp;nbsp; lt;titlegt;lt;/titlegt;
nbsp;nbsp;nbsp;nbsp; lt;script src="/socket.io/socket.io.js"gt;lt;/scriptgt;
nbsp;nbsp;nbsp;nbsp; lt;scriptgt;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; var socket=io.connect();
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; socket.on("message", function (data) {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; console.log(data);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; socket.send("消息已接受到.")
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; });
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; socket.on("disconnect", function () {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; console.log("服务器端断开连接.");
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; });
nbsp;nbsp;nbsp;nbsp; lt;/scriptgt;
nbsp;lt;/headgt;
nbsp;lt;bodygt;
nbsp;lt;/bodygt;
nbsp;lt;/htmlgt;

这段代码:/socket.io/socket.io.js有服务器端socket.io类库提供,不需要再客户端实际放置一个socket.io.js文件.

在脚本文件中,首先使用io.connect()方法连接服务器端socket.io服务器.

该方法返回一个与服务器端建立连接的客户端socket端口对象.

当接受到服务器端发送的消息时,触发客户端socket端口对象的message事件.

复制代码 代码如下:
socket.on("message",function(msg){
});

msg是服务器端发送的数据;

也可以使用客户端的socket对象的send()方法向服务器端发送数据.

复制代码 代码如下:
socket.send(msg);

当服务器端断开连接时,触发客户端socket端口对象的disconnect事件,

复制代码 代码如下:
socket.on("disconnect",function(){
})

这个回调函数不使用任何参数.

注意:

客户端的消息机制与服务器端的消息处理机制是完全一致的.因为socket.io确保客户端与服务器端共享相同的API.

运行后的结果:

node.js中使用socket.io的方法

当关闭浏览器是,就断开了与服务器的连接,此时服务器端触发disconnect事件,客户端断开连接.

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读