商城系统 注册

微信扫码签到实现弹幕上屏

2020-09-27|HiShop
导读:三、带Socket.IO的WebSocket Socket.IO是Guillermo Rauch创建的WebSocket API,Guillermo Rauch是LearnBoost公司的首席技术官以及LearnBoost实验室的首席科学家。Socket.IO使用检测...

 微信扫码签到实现弹幕上屏

  三、带Socket.IO的WebSocket

  Socket.IO是Guillermo Rauch创建的WebSocket API,Guillermo Rauch是LearnBoost公司的首席技术官以及LearnBoost实验室的首席科学家。Socket.IO使用检测功能来判断是否建立WebSocket连接,或者是AJAX long-polling连接,或Flash等。可快速创建实时的应用程序。Socket.IO还提供了一个NodeJS API,它看起来非常像客户端API。建立客户端Socket.IO

  Socket.IO可以从GitHub下载,可以把socket.io.js文件包含到页面中:

  [

  [/code

  此时,Socket.IO在此页面上是有效的,是时候创建Socket了:

  [

  // 添加一个连接监听器socket.on('connect',function() { console.log('Client has connected to the server!'); });

  // 添加一个连接监听器socket.on('message',function(data) { console.log('Received a message from the server!',data); });

  // 添加一个关闭连接的监听器socket.on('disconnect',function() { console.log('The client has disconnected!'); });

  // 通过Socket发送一条消息到服务器function sendMessageToServer(message) { socket.send(message); }

  Socket.IO简化了WebSocket API,统一了返回运输的API。传输包括:WebSocketFlash SocketAJAX long-pollingAJAX multipart streamingIFrameJSONP polling

  你还可以设置任意的Socket.IO构造器的第二个选项,选项包括:

  port - 待连接的端口transports - 一个数组,包含不同的传输类型transportOptions - 传输的参数使用的对象,带附加属性

  Socket.IO还提供了由本地WebSocket API提供的普通连接、断开连接、消息事件。Socket还提供了封装每个事件类型的方法。

  四、NodeJS和Socket.IO联合开发

  Socket.IO提供的服务器端解决方案,允许统一的客户端和服务器端的API。使用Node,你可以创建一个典型的HTTP服务器,然后把服务器的实例传递到Socket.IO。从这里,你创建连接、断开连接、建立消息监听器,跟在客户端一样。

  一个简单的服务器端脚本看起来如下:

  [

  // 在8080端口启动服务器var server= http.createServer(function(req, res){ // 发送HTML的headers和message res.writeHead(200,{ 'Content-Type': 'text/html' }); res.end('

  Hello Socket Lover!

  '); }); server.listen(8080);

  // 创建一个Socket.IO实例,把它传递给服务器var socket= io.listen(server);

  // 添加一个连接监听器socket.on('connection', function);

  你可以运行服务器部分,假定已安装了NodeJS,从命令行执行:

  [

  现在客户端和服务器都能来回推送消息了!在NodeJS脚本内,可以使用简单的JavaScript创建一个定期消息发送器:

  [

  服务器端将会每5秒推送消息到客户端!

  五、dojox.Socket和Socket.IO

  Persevere的创建者Kris Zyp创建了dojox.Socket。dojox.Socket以Dojo库一致的方式封装了WebSocket API,用于在客户端不支持WebSocket时,使用long-polling替代。

  下面是怎样在客户端使用dojox.Socket和在服务器端使用Socket.IO的例子:

  [

  dojox.socket.Reconnect还创建了在套接字失去连接时自动重连。期待包含dojox.Socket的Dojo 1.6版本早日发布。

  六、实际应用和WebSocket资源

  WebSocket对于大多数客户机-服务器的异步通信是理想的,在浏览器内实时聊天互动是最突出的应用。现场互动系统使用最新的WebSocket技术,来处理用户签到,实时消息和图片发送,投票,抽奖等消息,会带给用户最快最高效的极致体验。

电话咨询 预约演示 0元开店