无法从客户端发出套接字消息
Cannot emit socket message from client
所以,我正在建立一个快递应用程序,里面有护照、猫鼬、连接闪光灯等常见的功能,我正在使用socket.io来监听和发送消息。
目前,我只是向每个人发送信息(稍后会设置房间),一切(但这)都很好。当最终用户访问任何页面时,所有当前连接的用户都会收到一条消息";大家好&";,而刚刚连接的用户显然也会向自己发送消息。到目前为止,一切如预期。。。
问题:我有一个页面上有一个按钮…
<button id="register" type="button" class="btn btn-warning">Register</button>
单击时,会发出一条消息,上面写着"我想注册!"(目前对所有人来说,但这还不重要)。作为回应,服务器应该对此进行监听,并通过发出一条消息来回应,说"嗯,我会考虑的!"。
在服务器上从未听到"registering",因此无法发出"registration-response"的回复。
有人看到我做错了什么吗
我看过这个SocketIO,可以';t发送来自客户端和其他几个类似的发射数据,但我已经在做他们建议的事情:/
注意:应用程序在http://localhost:3000/
上运行,io使用http://localhost:8678/events
。如果你需要任何进一步的信息,请告诉我
客户端JS/jQuery(app.JS)
var app = app || {};
app = (function($){
$(function () {
/////////////////////////////////////////////////////
// Connect to io and setup listeners
/////////////////////////////////////////////////////
var socket = io.connect('http://localhost:8678/events');
socket.on('connected', function (data) {
console.log(data); // Always see this in the console
});
socket.on('registration-response', function (data) {
console.log(data); // NOT seen in console
});
/////////////////////////////////////////////////////
// Setup click events
/////////////////////////////////////////////////////
$('#register').on('click', function(){
console.log('click'); // Always see this, so no binding issue
socket.emit('registering', 'I want to register!');
});
});
})(jQuery);
服务器端JS
var app = require('express');
var http = require('http');
var server = http.createServer(app);
var io = require('socket.io').listen(server); //pass a http.Server instance
server.listen(8678); //listen on port 8678
////////////////////////////////////////
// Register event listeners
////////////////////////////////////////
var events = io.of('/events');
events.on('connection', function(socket){ // This is heard and callback fires
events.emit('connected', 'Hi everyone!'); // This gets sent fine
});
events.on('registering', function(data){
events.emit('registration-response', 'Hmmm, will think about it!');
});
服务器上的套接字没有设置为侦听事件。
你需要像这样做
events.on('connection', function(socket){ // This is heard and callback fires
events.emit('connected', 'Hi everyone!'); // This gets sent fine
socket.on('registering', function(data){
events.emit('registration-response', 'Hmmm, will think about it!');
});
});
套接字现在知道在接收到"registering"事件时该做什么,并将响应发送到"/events"命名空间。
相关文章:
- 无法从客户端发出套接字消息
- 正在获取丢失的错误处理程序套接字消息,无法读取属性'timerID'使用Node.js和Socket.i
- 服务器到服务器套接字IO消息
- sails 客户端(浏览器)如何侦听从不同端口发出(爆破)的套接字消息
- Socket.io 向某些套接字(体系结构)发出消息
- 无法与网络套接字通信.高速公路:收到 HELLO 消息,会话尚未建立
- 向节点.js和 socket.io 中的单个套接字发送消息
- 我在node.js中收到一条消息,对象套接字未定义
- 从javascript中的套接字获取消息时出错
- Socket.io-为私有消息传递实现用户套接字关联映射
- Web套接字服务器v13 RFC 6455客户端不接收消息
- 莫名其妙的页面刷新在套接字后被触发.输入输出消息
- 如何接收web套接字消息从服务器在客户端通过html5套接字api
- 套接字.io祝辞简单的服务器到客户机消息
- 使用AJAX与套接字.IO socket消息
- 套接字.i Won't发送消息到断开的房间
- 套接字.发送用户和消息数据
- 聊天服务器使用套接字.消息没有添加到列表中
- 在JavaScript中是否有一种方法可以延迟处理web套接字消息,直到设置了标志
- 如何使用stomp.js在javascript中使用web套接字消息