之前没学套接字编程,在看深入浅出node.js。看到网络编程这块,不知道如何下手,看node官方文档也不知道该怎么做。比如书上第一个例子:
var net = require('net')var server = net.createServer( function (socket){ socket.on('data',function(data){ socket.write("你好") }) socket.on('end',function(){ console.log('连接断开') }) socket.write("欢迎光临")} )server.listen(8124,function(){ console.log('server bound')})
书上利用Telnet工具作为客户端,输出
欢迎光临
hi
你好
上面代码有部分书上没解释,'data' 事件是在官网查到的,可有些太容易的官网估计也不会写
书上写connection:每个客户端套接字连接到服务端时触发,简洁写法为net.createSever(),最后一个参数触发。所以上面代码中的 function (socket)函数在客户端套接字连接到服务端时被触发了?
还有上面代码实现 客户端套接字连接服务端 的部分在哪?客户端套接字和服务端套接字怎么区分。
解决方案
给你注释一下吧,客户端和服务端
var server = net.createServer( function (socket){ socket.write("欢迎光临");//有一个客户端第一次连接时触发 socket.on('data',function(data){ console.log(data)//客户端发送的信息 socket.write("你好")//向客户端推送信息 }) socket.on('end',function(){ console.log('连接断开')//连接断开时触发 })} )
客户端
var socket = new WebSocket('ws://localhost:8080'); //初始化一个soket连接// 打开Socket 触发服务端端 “欢迎光临”socket.onopen = function(event) { // 发送一个消息 触发服务端data事件 socket.send('向后台发送了一条消息'); //接收服务端推送的消息 “你好” socket.onmessage = function(event) { console.log('接收到了后台的消息',event); }; //服务端关闭socket时触发 socket.onclose = function(event) { console.log('后台关闭socket',event); }; // 客户端关闭socket时触发 服务端 end事件 “连接断开” //socket.close() };