Node.js和socket.io不允许连接和交换数据
Node.js and socket.io is not allowing to connect and exchange data
我正在尝试连接一个房间中的两个用户并交换一些数据,我该怎么做?当我访问服务器时只得到:abba
server.js:
var http = require('http');
var app = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('abba');
});
var io = require('socket.io').listen(app);
var messageExchange = io
.of('/play')
.on('connection', function (socket) {
socket.channel = "";
socket.on("joinChannel", function (data) {
socket.channel = data.channel;
});
socket.on("message", function (data) {
socket.broadcast.emit("message", {
channel: socket.channel,
message: data.message
});
});
});
app.listen(3000);
客户端:
<script>
var chat = io.connect('//talk.test.com:3000/play');
var channel = "ciao";
chat.on("connect", function () {
chat.emit("joinChannel", {
channel: channel
});
});
chat.on("message", function (data) {
if (data.channel == channel) {
alert(data.message);
}
});
// Send a message!
chat.emit("message", { message: "hola" });
</script>
步骤1-在服务器中运行
$ cat server.js
var io = require('socket.io').listen(3000);
io.sockets.on('connection', function (socket) {
io.sockets.emit('this', { will: 'be received by everyone'});
socket.on('joinChannel', function (from, msg) {
console.log('I received a private message by ', from, ' saying ', msg);
io.sockets.emit('message', {channel: from.channel, message: 'Got it?' } );
});
socket.on('disconnect', function () {
io.sockets.emit('disconnected');
});
});
$ node server.js
第2步:制作一个包含以下内容的index.html:
<?php
$room = $_GET['r'];
?>
<!doctype html>
<html>
<head>
<script src='//code.jquery.com/jquery-1.7.2.min.js'></script>
<script src='//talk.domain.com:3000/socket.io/socket.io.js'></script>
<script>
var chat = io.connect('//talk.domain.com:3000');
var channel = '<?php echo $room;?>';
chat.on("connect", function () {
chat.emit("joinChannel", {
channel: channel,
message: 'OKOKOKOKOKOK'
});
});
chat.on("message", function (data) {
if (data.channel == channel) {
alert(data.message);
}
});
</script>
</head>
<body>
</body>
</html>
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 如何使用密码检测网络中的状态连接
- 如何处理node.js节点mongodb中的连接和查询队列
- Rails-JQueryUIAutcomplete和AJAX不工作,可以't连接到数据库
- Twilio-显示所有连接参与者的远程参与者视频
- 操作放置在画布上的元素之间的连接
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- jQuery UI可排序-多连接列表拖动
- 如何使用offer/answer交换来自两个对等连接的流
- 在Qualtrics中,介绍如何动态连接两个滑块
- 使用优化器在慢速连接上加载main.js时需要js超时
- 如果连接类型为none,则Javascript Function Only警报
- GTK百老汇支持同时连接
- 在node.js中写入ECONNRESET错误和套接字连接检查
- 如何将所有JS文件连接到一个文件夹中
- 在cordova android应用程序中连接数据库
- 简单的ES6承诺问题-交换解决和拒绝参数
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- 我可以通过JQuery将CSS类交换为一个特殊的元素集吗
- Node.js和socket.io不允许连接和交换数据