如果/else条件在socket.io和HTTP node.js中
If/else condition in socket.io and HTTP node.js
我正在尝试使用Node.js的HTTP包为socket.io实现一个条件操作。
基本上,我想要的是,根据get请求,socket.io调用不同的函数或发送不同的数据。
这是我的代码:
var http = require('http'),
fs = require('fs');
var app = http.createServer(function (request, response) {
fs.readFile("client.html", 'utf-8', function (error, data) {
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
response.end();
});
}).listen(1337);
var io = require('socket.io').listen(app);
io.sockets.on('connection', function(socket) {
socket.on('message_to_server', function(data) {
http.get("/something", function(res) {
io.sockets.emit("message_to_client",{ message: data["message"] });
console.log(data["message"]);
});
http.get("/else", function(res) {
console.log("something else");
});
});
});
我应该怎么做才能实现这样的功能?
我认为你做这件事的方式不对。
它可以像一样完成
io.sockets.on('connection', function(socket) {
socket.on("something", function(res) {
socket.emit("message_to_client",{ message: data["message"] });
console.log(data["message"]);
});
socket.on("else", function(res) {
console.log("something else");
});
});
并编辑路由CCD_ 1的视图以便在其加载到服务器时发出CCD_。并对路由/else
执行相同操作
在这里,您将根据您所在的页面向服务器发送自定义事件,以便服务器可以相应地响应/发送每个路由。你尝试的另一种方法似乎不起作用。对不起,如果我错了。
更新
在你的客户端(视图),你可以有像
view1.html
var socket = io.connect('http://localhost:8080');
socket.on('connect', function(){
socket.emit('something');
});
socket.on('message_to_client', function (data) {
alert(data);
});
view2.html
var socket = io.connect('http://localhost:8080');
socket.on('connect', function(){
socket.emit('else');
});
socket.on('message_to_client', function (data) {
alert(data);
});
注释
还要注意,如果您使用io.socket.emit
,它将从服务器广播到所有连接。相反,使用socket.emit
(在您的情况下,对象是socket
)将发送到相关连接
相关文章:
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 在node-js路由中发出http请求
- Node.js-查找http服务器正在侦听的端口
- HTTP服务器在一段时间后停止(Node.js)
- Node.js HTTP/NET——连接和请求之间的区别
- 如何制作'http请求'在Node js中同步
- 在 Node.js 中使用流来缓冲 HTTP 通信
- 如何使用 JS (Node.js) 防止 HTTP 查询中允许使用 UTF8 字符串
- Node http-proxy-middleware 不能与本地服务器一起工作
- 通过Node.js路由http请求
- 在Node.js和浏览器上拦截(mock)http请求
- Node/Angular中的$http GET请求收到了奇怪的响应
- node.js:在for循环中进行http调用
- 如何从node.js中的HTTP请求中获得同步结果
- 如何在node.js中使用promise进行同步http调用
- node.js http服务器并发问题
- "对象不是函数“;当将Node.js HTTP服务器对象传递给Socket.IO时
- 如果/else条件在socket.io和HTTP node.js中
- 如何使用Express.js和http.Node.js中的createServer函数
- 跨域请求只支持HTTP.node . js