WebSocketcallback来回答消息
我正在用WebSockets进行简单的练习。 我有一个NodeJS脚本,在WebSocket上侦听,接收文件名,打开文件,并通过WebSocket将文件的内容发送回客户端。
这里是代码:
var websocket_server = require('ws').Server; var server = new websocket_server({port: 1234}); var fs = require('fs'); server.on('connection', function connection(socket) { socket.on('message', function request(file_name) { fs.readFile(file_name, function(error, data) { if(error) throw error; socket.send(data, {binary: true}); }); }); });
在客户端,我使用WebSocket来加载图像并将其显示在页面中:
<!DOCTYPE html> <html> <head> <title>My Little Project</title> <script type = "text/javascript"> var ws = new WebSocket("ws://127.0.0.1:1234"); ws.binarytype = "blob"; ws.onmessage = function(event) { var img = document.createElement("img"); img.src = (window.URL || window.webkitURL).createObjectURL(event.data); document.body.appendChild(img); } ws.onopen = function(event) { ws.send("image1.jpg") } </script> </head> <body> </body> </html>
现在,这个例子工作正常,我很高兴。 让我难过的是,现在我想要问服务器多个图像,并做一些事情。
我知道我可以通过执行以下操作来序列化所有请求:
ws.onmessage = function(event) { // Do something with image1.jpg ws.onmessage = function(event) { // Do something with image2.jpg // And so on } ws.send("image2.jpg"); }; ws.send("image1.jpg");
但这是串行的,这增加了开销等等。 我想得到的东西是这样的:
ws.send("image1.jpg", function(event) { // Do something with image1.jpg }); ws.send("image2.jpg", function(event) { // Do something with image2.jpg }); // And so on
我不知道如何做到这一点既不在客户端也不在服务器上,所以任何帮助将不胜感激。
- Api.ai Facebook Messenger集成卡和传送带
- 强制node.js使用OpenSSL的非发布副本
- 如何在Node JS中存储大的twitter profile ID
- Unity3d和Sockets.IO不会握手
- 为什么https.Agent在通过node-http-proxy进行代理时会抛出parsing错误?
- socket.io:断开事件 – “传输closures”,“客户端命名空间断开连接”,“传输错误”和“强制closures”
- NodeJS – 如何parsing没有框架的多部分表单数据?
- 理解node.js中recursion函数的承诺
- Node.js Twitter API游标