我想将数据发送到服务器上连接的特定客户端。
我有这个架构:
<form class="register-store">
<div class="row">
<div class="col-md-6">
<div class="input-group">
<label for="store_name"><?php esc_attr_e( 'Store Name', 'compare' ) ?> <span class="required">*</span></label>
<input type="text" class="form-control" name="store_name" id="store_name">
<p class="field-description"><?php _e( 'Input name of your store', 'compare' ) ?></p>
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<label for="store_url"><?php esc_attr_e( 'Store URL', 'compare' ) ?> <span class="required">*</span></label>
<input type="text" class="form-control" name="store_url" id="store_url">
<p class="field-description"><?php _e( 'Input link to your store', 'compare' ) ?></p>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="input-group">
<label for="store_contact_name"><?php esc_attr_e( 'Your Name', 'compare' ) ?> <span class="required">*</span></label>
<input type="text" class="form-control" name="store_contact_name" id="store_contact_name">
<p class="field-description"><?php _e( 'Input your full name', 'compare' ) ?></p>
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<label for="store_contact_phone"><?php esc_attr_e( 'Your Phone', 'compare' ) ?> <span class="required">*</span></label>
<input type="text" class="form-control" name="store_contact_phone" id="store_contact_phone">
<p class="field-description"><?php _e( 'Input your phone with internation prefix', 'compare' ) ?></p>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="input-group">
<label for="store_contact_email"><?php esc_attr_e( 'Your Email', 'compare' ) ?> <span class="required">*</span></label>
<input type="text" class="form-control" name="store_contact_email" id="store_contact_email">
<p class="field-description"><?php _e( 'Input your mail for contact', 'compare' ) ?></p>
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<label for="store_package"><?php esc_attr_e( 'Chose your package', 'compare' ) ?> <span class="required">*</span>
<?php
$all_packages_link = compare_get_permalink_by_tpl( 'page-tpl_packages' );
if( $all_packages_link !== 'javascript:;' ):
?>
<a href="<?php echo esc_url( $all_packages_link ) ?>" class="pull-right"> <?php _e( 'Check list of available packages', 'compare' ) ?></a></label>
<?php endif; ?>
<select name="store_package" id="store_package" class="form-control">
<option value=""><?php _e( 'Select Package', 'compare' ) ?></option>
<?php echo compare_list_packages(); ?>
</select>
<p class="field-description"><?php _e( 'Select package for your store', 'compare' ) ?></p>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="input-group">
<label for="store_xml_feed"><?php esc_attr_e( 'Store Feed URL', 'compare' ) ?> <span class="required">*</span></label>
<input type="text" class="form-control" name="store_xml_feed" id="store_xml_feed">
<p class="field-description"><?php _e( 'Input link to your XML / CSV products feed', 'compare' ) ?></p>
</div>
</div>
<div class="col-md-6">
<div class="input-group">
<label for="store_logo"><?php esc_attr_e( 'Store Logo URL', 'compare' ) ?> <span class="required">*</span></label>
<input type="text" class="form-control" name="store_logo" id="store_logo">
<p class="field-description"><?php _e( 'Input link to your store logo', 'compare' ) ?></p>
</div>
我目前有以下代码:
chat = {
rooms: [
{
users: [
{
client: {/* socket.io client */},
pseudo: ''
}
...
],
messages: [...]
}
...
]
}
但是当我尝试运行代码时(当客户端发送消息时),我遇到了服务器端错误:var chat = {
// ...,
sendMessagesTo: function(event, room) {
var users = room.users;
var msg = room.messages;
var len = users.length;
for (var i = len; i--;) {
users[i].client.emit(event, msg);
}
},
}
io.on('connection', function(client) {
// user = {client: client, pseudo: 'somePseudo'};
// user is added in the chat > rooms > users array;
chat.sendMessagesTo('newMessage', someSpecificRoom);
// ...
});
上缺少错误处理程序。
我希望你有一个解决方案:)。
谢谢!
答案 0 :(得分:0)
我不知道发生了什么。它适用于这个解决方案:
io.to(users[i].client.id).emit(event, room.messages);
我将client.id存储为:
user = {client: {id: client.id}, pseudo: data.pseudo};