跟踪套接字socket.io上发送的消息



我正在开发一个与django.sockettio的聊天。我想跟踪套接字上发送的消息,以便在新用户到来时呈现它。我想让他在到达之前看到发送的信息。

我的代码很简单:

模板:

<script>
var url = window.location.pathname.split('/');
var id = url[3];
var socket = new io.Socket();
socket.connect();
socket.on('connect', function(context){
socket.subscribe('channel-' + id)  
});

socket.on('message', function(data){
$('.try').prepend('<div> '+val+' </div>');
});

function send(){
var val = $('#text').val();
data = val
socket.send(data);
};
</script>

html:

<form id="form" onsubmit="send(); return false">
<input type="text" id="text">
<input type="submit" value="Send">
</form>
<div class="try"> </div>

events.py:

@events.on_message(channel='^channel-')
def messages(request, socket, context, message):
socket.send_and_broadcast_channel(message)

在这个简单的聊天中,使用不同的频道,我想跟踪(每个频道)发送的消息,并在用户第一次连接时呈现它。

我正在寻找如何做到这一点的提示。

非常感谢。

只需为消息创建一个表,并确保其中一列是聊天室名称或id,这样您就可以在订阅聊天室时查询最近10条消息。

因此,在呈现页面时,您会从数据库中获得最后一条消息,然后从套接字中获得下一条消息。

如果您不希望消息保存太久,只需定期截断表以进行清理即可。

最新更新