Socket.io:“无法读取未定义的属性'emit'" [英] Socket.io : "Cannot read property 'emit' of undefined"
本文介绍了Socket.io:“无法读取未定义的属性'emit'"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我目前正在使用socket.io开发我的网站.
So I'm currently developping my website using socket.io.
今天,当我实现套接字时,我遇到了一个很好的小错误无法读取未定义的属性'emit'" 我找不到我的代码有什么问题,所以希望大家能帮帮我.
Today, while I was implementing the sockets, I got a nice little error "Cannot read property 'emit' of undefined" I can not find what's wrong in my code so I hope you guys can help me.
App.js:
var socket = require( 'socket.io' );
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = socket.listen( server );
var port = 9999;
server.listen(port, function () {
console.log('Listening at port %d', port);
});
io.sockets.on('connection', function (socket) {
console.log('User connected');
socket.on('create_socket', function(port){
console.log(port);
});
客户端:
<div>
<p class="connected" hidden>Connected port : 9999</p>
<p class="connect_error" hidden><strong>Can not connect to socket on port 9999</strong></p>
</div>
<script>
var socket = io.connect("http://localhost:9999");
// If connection can not be established
socket.on('connect_error', function(socket) {
$('.connected').hide();
$('.connect_error').show();
});
// Connection established
socket.on('connect', function(socket) {
$('.connect_error').hide();
$('.connected').show();
// socket.on('create_socket', null, <?= $port; ?> );
socket.emit('create_socket', '<?= $port; ?>');
});
</script>
顺便说一句,所有的socket.io/jquery/...包含的内容都正确完成了,即使它们没有出现在代码上
Btw, all the socket.io/jquery/... includes are done correctly even if they doesn't appear on the code
预先感谢
推荐答案
客户代码:
更改
// Connection established
socket.on('connect', function(socket) {
到
// Connection established
socket.on('connect', function(data) {
最终:
// Connection established
socket.on('connect', function(data) {
$('.connect_error').hide();
$('.connected').show();
console.log(data);
socket.emit('create_socket', '<?= $port; ?>');
});
以前,您在哪里覆盖套接字对象.
Previously, you where overwriting the socket object.
这篇关于Socket.io:“无法读取未定义的属性'emit'"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文