套接字.发送用户和消息数据
Socket.io - sending both user and message data
我一直在关注Socket的入门页面。并且已经完成了主要任务。但是,现在我正在尝试实现一个新功能,以便它将用户的名称与消息一起发送回来。虽然这发送回消息很好,我不确定如何实现它,所以它也发送回用户的数据。我知道我可以复制下面的代码并将其编辑为用户特定的东西,但是接下来呢?
发出正常用户:
socket.emit('chat message', $('#u').val());
然后,在服务器上检索:
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
然后,在页面上显示该信息:
socket.on('chat message', function(msg){
$('#messages').append($('<li class="mesg">').text(msg));
});
正如Jonathan所评论的那样,只需将其作为对象发送即可。
注意socketio会自动为你序列化/反序列化,所以你不需要额外的JSON。stringify步骤。
这是我现在使用的游戏代码的一个例子:
//client.js
io.emit('waypoint', { x: players.me.targetX, y: players.me.targetY });
//server.js
socket.on('waypoint', function (msg) {
console.log(msg.x, msg.y);
});
在你的例子中,就像这样,
//client.js
io.emit('chat message', { msg: $('#u').val(),
userColor: 'green',
moreData:{ isAwesome:true, favoritePie:'apple'} });
我不完全确定我是否正确理解了你的问题,但我认为你所需要做的就是发出一个JSON对象作为你的消息,然后解析另一边的响应,像这样:
var obj = {message: $('#u').val(), user: "User"};
socket.emit('chat message', JSON.stringify(obj));
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
socket.on('chat message', function(msg){
var message = JSON.parse(msg).message; //$('#u').val()
var user = JSON.parse(msg).user; //"User"
$('#messages').append($('<li class="mesg">').text(message));
});
相关文章:
- Rails:将表单字段值添加到数据确认消息中
- 如何使用Jquery更新数据确认属性中的消息
- 按钮上的数据加载消息无法与ajax调用一起工作
- 如何在表空或在jquery数据表中找不到匹配项的情况下添加自定义警告消息
- 如何更改数据工具提示消息
- 数据插入有效,但不显示警报框消息
- 在网格视图中显示不同的消息,用于没有绑定数据和未检索到结果
- 在 MVC 中显示已成功保存的数据消息 ASP.Net
- 保存数据 asp.net 后单击按钮时显示警报消息
- 是否可以在 spotfire 文本区域中显示图像/消息以等待加载数据
- 如果没有数据将显示消息
- 如何解析数据和二进制Websocket消息
- 从 yii2 活动表单(在模态中)保存数据后无法显示成功消息
- 数据批注在 MVC 4 中未显示错误消息
- 加载从跨文档消息传递中作为事件数据获得的 pdf
- 加载时显示消息,例如在 mvc 中加载或不再加载数据
- 我想在输入数据本身时显示错误消息(在 keyup 上)
- 如何处理来自 websocket 的消息事件数据
- 在Thunderbird扩展中获取选定的消息数据
- 套接字.发送用户和消息数据